Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Информация
iconfalse
titleПостановка задачи

Подключить выбор дела на форму РКК

Подсказка

Инструмент: Палитра XML

Свойства страницы
Статус

Статус
colourGreen
titleГОТОВО

РазделПоля
Комментарий

панель
titleРеализация
Подключить поле Дело

Оглавление

панель
titleРезультат

Image Added


Добавить поле на форму

Создать схему объекта

Создать схему объекта, которое будет отображаться в поле "Дело"

Блок кода
languagexml
titleСхема объекта
collapsetrue
<?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-интерфейсе

Блок кода
languagexml
titleФорма объекта
collapsetrue
<?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>

Подключить объект к схеме документа

Подключить объект Дела к схеме документа

Блок кода
languagexml
titleПодключение объекта в схему
<?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-интерфейс

Блок кода
languagexml
titleПодключение объектного поля на форму
<?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 запрос для вывода списка Дел

Блок кода
languagexml
titleКастомная коллекция
collapsetrue
<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>

Создать бин коллекци

Блок кода
languagexml
titleБин кастомной коллекции
collapsetrue
<?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>

Создать

описатель коллекции для UI-интерфейса

описатели колонок

Блок кода
languagexml
title
Дескрипторcollapsetrue
Элементы коллекции
<?xml version='1.0' encoding='UTF-8'?>
<catalog xmlns="http://www.intertrust.ru/schema/palette/cat-ui"> 
	
<custom-descriptor
<column 
ident
name="
Inventory
invPrefix" 
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>
subject="${catalog.column.invPrefix.subject:Префикс}" extends="string">
    	<meta>
      		<documentation>Префикс дела</documentation>
    	</meta>
  	</column>
  	<column name="invNumber" subject="${catalog.column.invPrefix.subject:Номер}" extends="string">
    	<meta>
      		
<columns>
<documentation>Номер дела</documentation>
    	</meta>
  	
<column-ref ref="fc_subject" filter="true"/>
</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="
inventory_obj
invPrefix" />
    
	<column-ref ref="
self
subject" />
    
	<column-ref ref="
fc_depId
id" 
category="true"
/>
    	
</columns>
<column-ref ref="invNumber"/>
  
	</
table> </custom-descriptor>
complex-column>
</catalog>

Создать дескриптор

Создать описатель коллекции для UI-интерфейса

Блок кода
languagexml
title
Элементы коллекции
Дескриптор
collapsetrue
<?xml version='1.0' encoding='UTF-8'?>
<catalog xmlns="http://www.intertrust.ru/schema/palette/cat-ui">

	
<column
<custom-descriptor 
name
ident="
invPrefix
Inventory" 
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>
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="
invPrefix
fc_subject" filter="true"/>
      			<column-ref ref="
subject
inventory_obj" />
      			<column-ref ref="
id
self" />
     			<column-ref ref="fc_depId" category="
invNumber
true" />
    		</columns>
  		</table>
	</
complex
custom-
column>
descriptor>
</catalog>

Создать программную коллекцию

Создать программную коллекцию и подключить к ней дескриптор

Блок кода
languagexml
titleПрограммная коллекция
collapsetrue
<?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>
Подключить коллекцию дел к справочнику

Создать справочник

Создать справочник и подключить программную коллекцию

Блок кода
languagexml
titleПодключение справочника
<?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>

Подключить справочник

Дел

к полю

Блок кода
languagexml
titleПодключение справочника
<?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>
панельtitle<Название видео>