Добавить поле на форму
Создать схему объекта
Создать схему объекта, которое будет отображаться в поле "Дело"
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version='1.0' encoding='UTF-8'?>
<schemas xmlns="http://www.intertrust.ru/schema/palette/tn-schema">
<schema name="InventoryDoc">
<meta>
<category name="Отношение к делу" />
</meta>
<string name="id">
<storage-field name="inventory_ID" />
</string>
<string name="description" computed="true">
<storage-field name="inventory_description" />
<calc-values>
<script lang="SPEL" event="open"><![CDATA[fc_name]]></script>
</calc-values>
</string>
<string name="subject">
<storage-field name="inventory_subject" />
</string>
<hyperlink computed="true" name="Link">
<storage-field name="inventory_link" />
<calc-values>
<script lang="SPEL" event="open"><![CDATA[id == null ? null : T(ru.intertrust.cmj.af.misc.HyperLink).createHyperLink(invPrefix + invNumber + ' ' + subject +'~#'+T(ru.intertrust.cmj.ws.base.servlet.ServletUrlHolder).getServerUrlStr() + '/ids/' + id +'~#newTab~#local')]]></script>
</calc-values>
</hyperlink>
<string name="invPrefix">
<storage-field name="inventory_prefix" />
</string>
<string name="invNumber">
<storage-field name="inventory_number" />
</string>
<string name="fc_name">
<storage-field name="inventory_name" />
</string>
</schema>
</schemas> |
Создать форму
Создать структуру объекта Дела для отображения UI-интерфейсе
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version='1.0' encoding='UTF-8'?>
<ui xmlns="http://www.intertrust.ru/schema/palette/tn-ui">
<form schema-ref="InventoryDoc" projection="default" id="InventoryDocForm">
<properties>
<hide condition-union="AND">
<negative-condition-ref ref="digest"/>
</hide>
</properties>
<!--Отображение в виде ссылки на дело-->
<component>
<field attribute-ref="Link" alias="description">
<appearance importance="normal" />
</field>
</component>
</form>
</ui> |
Подключить объект к схеме документа
Подключить объект Дела к схеме документа
Блок кода | ||||
---|---|---|---|---|
| ||||
<?xml version='1.0' encoding='UTF-8'?>
<schemas xmlns="http://www.intertrust.ru/schema/palette/tn-schema">
<schema>
<schema-ref ref="InventoryDoc" name="case"/>
</schema>
</schemas> |
Добавить поле на форму
Подключить поле "Дело" в UI-интерфейс
Блок кода | ||||
---|---|---|---|---|
| ||||
<?xml version='1.0' encoding='UTF-8'?>
<ui xmlns="http://www.intertrust.ru/schema/palette/tn-ui">
|
<form> <section> <component> <field attribute-ref="case" name="${ui.form.RkkResourceInputForm.field.case.name:Дело:}"> <!-- Визуализация --> <appearance importance="normal" multiline="true" open-form="newTab"> <label-style> <style id="tunBorderedField"/> </label-style> </appearance> </field> </component> </section> < |
/form> </ui> |
Подключить справочник
Создать кастомную коллекцию
Написать SQL запрос для вывода списка Дел
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
<collection name="Inventory_(vw_cmj_all_case)" idField="id" replace="runtime">
<prototype>
<![CDATA[
SELECT id,
numberWOTags,
created_date,
Module,
self_1,
self_2,
self_3,
invPrefix_tag,
subject_tag,
invNumber_tag,
numberWOTags,
subject,
moduleName,
fc_subject,
fileCardNumber || invNumber || ' ' || subject as description,
invNumber,
fc_depId,
fileCardNumber as invPrefix
FROM (
SELECT
CASE WHEN b.cmjunid IS NULL THEN substring(u.migrationid, 0, 33) ELSE substring(b.cmjunid, 0, 33) END AS fc_depId,
fc.id AS id,
fc.module as Module,
complect,
ss_module.title as moduleName,
fc.created_date,
fc.title as subject,
fc.Code as numberWOTags,
fc.Number as invNumber,
'<id>' AS self_1,
':' AS self_2,
'</>' AS self_3,
'<invPrefix>' AS invPrefix_tag,
'<subject>' AS subject_tag,
'<invNumber>' AS invNumber_tag,
CASE
WHEN (parent.IsCodeNumIndex = 1)
THEN parent.Code || '-' || fc.Number || ' ' || fc.title
ELSE fc.Code || '-' || fc.Number || ' ' || fc.title
END AS fc_subject,
CASE
WHEN (parent.IsCodeNumIndex = 1)
THEN parent.Code || '-' || fc.Number
ELSE fc.Code || '-'
END AS fileCardNumber
FROM
FD_FileCard fc
LEFT JOIN SO_Parent parent ON parent.id = fc.soobject
JOIN ss_module ON ss_module.id=fc.module
JOIN so_parent_su ON fc.soobject = so_parent_su.id
JOIN so_structureunit su on su.id = so_parent_su.owner
JOIN so_unit u on u.id = su.id
JOIN so_beard b on b.id = su.beard
UNION
SELECT
substring(b.cmjunid, 0, 33) as fc_depId,
fc.id AS id,
fc.module as Module,
complect,
ss_module.title as moduleName,
fc.created_date,
fc.title as subject,
fc.Code as numberWOTags,
fc.Number as invNumber,
'<id>' AS self_1,
':' AS self_2,
'</>' AS self_3,
'<invPrefix>' AS invPrefix_tag,
'<subject>' AS subject_tag,
'<invNumber>' AS invNumber_tag,
CASE
WHEN (parent.IsCodeNumIndex = 1)
THEN parent.Code || '-' || fc.Number || ' ' || fc.title
ELSE fc.Code || '-' || fc.Number || ' ' || fc.title
END AS fc_subject,
CASE
WHEN (parent.IsCodeNumIndex = 1)
THEN parent.Code || '-' || fc.Number
ELSE fc.Code || '-'
END AS fileCardNumber
FROM
FD_FileCard fc
LEFT JOIN SO_Parent parent ON parent.id = fc.soobject
JOIN ss_module ON ss_module.id=fc.module
JOIN so_parent_ph ON fc.soobject = so_parent_ph.id
JOIN so_posthead ph on ph.id = so_parent_ph.owner
JOIN so_appointmenthead apph on apph.post = ph.id AND apph.accessredirect is NULL
JOIN so_appointment app on app.id = apph.id
JOIN so_beard b on b.id = app.beard
) s
WHERE 1=1
::where-clause
]]>
</prototype>
<counting-prototype>
<![CDATA[
SELECT
COUNT(1)
FROM (
SELECT
CASE WHEN b.cmjunid IS NULL THEN substring(u.migrationid, 0, 33) ELSE substring(b.cmjunid, 0, 33) END AS fc_depId,
fc.id AS id,
fc.module as Module,
complect,
ss_module.title as moduleName,
fc.created_date,
fc.title as subject,
fc.Code as numberWOTags,
fc.Number as invNumber,
'<id>' AS self_1,
':' AS self_2,
'</>' AS self_3,
'<invPrefix>' AS invPrefix_tag,
'<subject>' AS subject_tag,
'<invNumber>' AS invNumber_tag,
CASE
WHEN (parent.IsCodeNumIndex = 1)
THEN parent.Code || '-' || fc.Number || ' ' || fc.title
ELSE fc.Code || '-' || fc.Number || ' ' || fc.title
END AS fc_subject,
CASE
WHEN (parent.IsCodeNumIndex = 1)
THEN parent.Code || '-' || fc.Number
ELSE fc.Code || '-'
END AS fileCardNumber
FROM
FD_FileCard fc
LEFT JOIN SO_Parent parent ON parent.id = fc.soobject
JOIN ss_module ON ss_module.id=fc.module
JOIN so_parent_su ON fc.soobject = so_parent_su.id
JOIN so_structureunit su on su.id = so_parent_su.owner
JOIN so_unit u on u.id = su.id
JOIN so_beard b on b.id = su.beard
UNION
SELECT
substring(b.cmjunid, 0, 33) as fc_depId,
fc.id AS id,
fc.module as Module,
complect,
ss_module.title as moduleName,
fc.created_date,
fc.title as subject,
fc.Code as numberWOTags,
fc.Number as invNumber,
'<id>' AS self_1,
':' AS self_2,
'</>' AS self_3,
'<invPrefix>' AS invPrefix_tag,
'<subject>' AS subject_tag,
'<invNumber>' AS invNumber_tag,
CASE
WHEN (parent.IsCodeNumIndex = 1)
THEN parent.Code || '-' || fc.Number || ' ' || fc.title
ELSE fc.Code || '-' || fc.Number || ' ' || fc.title
END AS fc_subject,
CASE
WHEN (parent.IsCodeNumIndex = 1)
THEN parent.Code || '-' || fc.Number
ELSE fc.Code || '-'
END AS fileCardNumber
FROM
FD_FileCard fc
LEFT JOIN SO_Parent parent ON parent.id = fc.soobject
JOIN ss_module ON ss_module.id=fc.module
JOIN so_parent_ph ON fc.soobject = so_parent_ph.id
JOIN so_posthead ph on ph.id = so_parent_ph.owner
JOIN so_appointmenthead apph on apph.post = ph.id AND apph.accessredirect is NULL
JOIN so_appointment app on app.id = apph.id
JOIN so_beard b on b.id = app.beard
) s
WHERE 1=1
::where-clause
]]>
</counting-prototype>
<filter name="MODULE">
<criteria placeholder="where-clause">
<![CDATA[
Module = {0}
]]>
</criteria>
</filter>
<filter name="self">
<criteria placeholder="where-clause">
<![CDATA[
Module = {0} and id = {1}
]]>
</criteria>
</filter>
<filter name="description">
<criteria placeholder="where-clause">
<![CDATA[
description = {0}
]]>
</criteria>
</filter>
<filter name="description_partial">
<criteria placeholder="where-clause">
<![CDATA[
description iLIKE ('%'||{0}||'%')
]]>
</criteria>
</filter>
<filter name="subject">
<criteria placeholder="where-clause">
<![CDATA[
subject = {0}
]]>
</criteria>
</filter>
<filter name="subject_partial">
<criteria placeholder="where-clause">
<![CDATA[
subject iLIKE ('%'||{0}||'%')
]]>
</criteria>
</filter>
<filter name="fc_subject">
<criteria placeholder="where-clause">
<![CDATA[
fc_subject ilike '%'||{0}||'%'
]]>
</criteria>
</filter>
<filter name="fc_subject_partial">
<criteria placeholder="where-clause">
<![CDATA[
fc_subject ilike '%'||{0}||'%'
]]>
</criteria>
</filter>
<filter name="fc_depId">
<criteria placeholder="where-clause">
<![CDATA[
fc_depId ilike '%'||{0}||'%'
]]>
</criteria>
</filter>
<filter name="fc_depId_partial">
<criteria placeholder="where-clause">
<![CDATA[
fc_depId ilike '%'||{0}||'%'
]]>
</criteria>
</filter>
<filter name="moduleName">
<criteria placeholder="where-clause">
<![CDATA[
moduleName LIKE {0}
]]>
</criteria>
</filter>
<filter name="CQSEARCH">
<criteria placeholder="where-clause">
<![CDATA[(lower(fc_subject) like ('%' || lower({0}) || '%'))]]>
</criteria>
</filter>
</collection> |
Создать бин коллекци
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd" default-lazy-init="true">
<bean id="Inventory_(vw_cmj_all_case)Metadata" class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.CollectionMetadataNew" p:caseSensitiveFieldNames="true">
<constructor-arg>
<list value-type="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field">
<bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field" p:name="self">
<property name="virtualField">
<bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.BuildVirtualField">
<property name="realFields">
<list>
<value>self_1</value>
<value>Module</value>
<value>self_2</value>
<value>ID</value>
<value>created_date</value>
<value>self_3</value>
</list>
</property>
<property name="pattern" value="<id>([0-9]{16}):([0-9A-F]{32})</>" />
<property name="separator" value="" />
<property name="emptySeparator" value="true" />
</bean>
</property>
</bean>
<bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field" p:name="fc_subject" p:filter="fc_subject" p:sortOrder="ASCENDING">
<property name="virtualField">
<bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.BuildVirtualField" p:name="fc_subject">
<property name="realFields">
<list>
<value>fc_subject</value>
</list>
</property>
</bean>
</property>
</bean>
<bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field"
p:name="MODULE" p:sortOrder="ASCENDING" p:filter="MODULE"/>
<bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field" p:name="inventory_obj">
<property name="virtualField">
<bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.BuildVirtualField">
<property name="realFields">
<list>
<value>self_1</value>
<value>Module</value>
<value>self_2</value>
<value>ID</value>
<value>created_date</value>
<value>self_3</value>
<value>invPrefix_tag</value>
<value>invPrefix</value>
<value>self_3</value>
<value>subject_tag</value>
<value>subject</value>
<value>self_3</value>
<value>invNumber_tag</value>
<value>invNumber</value>
<value>self_3</value>
</list>
</property>
<property name="separator" value="" />
<property name="emptySeparator" value="true" />
</bean>
</property>
</bean>
<bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field" p:name="fc_depId" p:filter="fc_depId" p:sortOrder="ASCENDING" p:categorized="true" p:sortPriority="0" />
</list>
</constructor-arg>
</bean>
</beans> |
Создать
описатели колонок
Блок кода | |||
---|---|---|---|
|
| |
<?xml version='1.0' encoding='UTF-8'?> <catalog xmlns="http://www.intertrust.ru/schema/palette/cat-ui"> |
<column |
name=" |
invPrefix" |
subject="${catalog.column.invPrefix.subject:Префикс}" extends="string"> <meta> <documentation>Префикс дела</documentation> </meta> </column> <column name="invNumber" subject="${catalog.column.invPrefix.subject:Номер}" extends="string"> <meta> <documentation>Номер дела</documentation> </meta> </column> <complex-column extends="object" subject="${catalog.complex-column.inventory_obj.subject:Объект дела}" name="inventory_obj" schema-ref="InventoryDoc"> <meta> <documentation>Объект документа</documentation> </meta> <column-ref ref=" |
invPrefix" /> |
|
|
<column-ref ref=" |
subject" /> |
|
|
<column-ref ref=" |
id" |
/>
|
<column-ref ref="invNumber"/> |
</ |
complex-column> </catalog> |
Создать дескриптор
Создать описатель коллекции для UI-интерфейса
Блок кода | |||
---|---|---|---|
|
| ||||
<?xml version='1.0' encoding='UTF-8'?>
<catalog xmlns="http://www.intertrust.ru/schema/palette/cat-ui"> |
|
<custom-descriptor |
ident=" |
Inventory" |
view="(vw_cmj_all_case)" id="inventory-all-case" name="Список дел для диалога" style="default"> <help id="99778660" /> <builder name="ru.intertrust.cmj.af.collections.impl.BuilderDominoViewCQSearch" /> <table> <columns> <column-ref ref=" |
fc_subject" filter="true"/> <column-ref ref=" |
inventory_obj" /> <column-ref ref=" |
self" /> <column-ref ref="fc_depId" category=" |
true" /> </columns> </table> </ |
custom- |
descriptor> </catalog> |
Создать программную коллекцию
Создать программную коллекцию и подключить к ней дескриптор
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version='1.0' encoding='UTF-8'?>
<catalog xmlns="http://www.intertrust.ru/schema/palette/cat-ui">
<view parent-ref="ProgrammedNavigator" id="inventory-all-case" name="${catalog.view.inventory_all_case.name:Список номенклатурных дел}" position="10011">
<descriptor-ref ref="inventory-all-case"/>
<source>
<module ident="Inventory"/>
</source>
</view>
</catalog> |
Создать справочник
Создать справочник и подключить программную коллекцию
Блок кода | ||||
---|---|---|---|---|
| ||||
<?xml version='1.0' encoding='UTF-8'?>
<ui xmlns="http://www.intertrust.ru/schema/palette/tn-ui">
<directories>
<custom-collection name="${ui.directories.custom-collection.inventory-dictionary.name: Номенклатура дел}" id="inventory-all-case">
<view-ref ref="inventory-all-case"/>
</custom-collection>
</directories>
</ui> |
Подключить справочник
к полю
Блок кода | ||||
---|---|---|---|---|
| ||||
<?xml version='1.0' encoding='UTF-8'?>
<ui xmlns="http://www.intertrust.ru/schema/palette/tn-ui">
<!--form-->
<section>
<component>
<field attribute-ref="case" name="${ui.form.RkkResourceInputForm.field.case.name:Дело:}">
<!-- Визуализация -->
<appearance importance="normal" multiline="true" open-form="newTab">
<label-style>
<style id="tunBorderedField"/>
</label-style>
</appearance>
<!--Подключение справочника-->
<directories relation="inventory-all-case" limit-livesearch="sys-current">
<directory-category-custom-coll attribute-ref="regPlaceID" ref="inventory-all-case"/>
</directories>
</field>
</component>
</section>
<!--form-->
</ui> |