Сравнение версий
Ключ
- Эта строка добавлена.
- Эта строка удалена.
- Изменено форматирование.
Свойства страницы | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
панель | |
---|---|
На этой странице:
|
Постановка задачи
Разработать представление для отображения документов, в котором будет присутствовать фильтрация, сортировка по колонкам.
Image Modified
Image Modified
Image Modified
Инструмент
Палитра XML
Реализация
Создание основы
В основу входит:
- Написание SQL-запроса (Кастомная коллекция)
- Описание метаданных (Кастомная коллекция)
- Описание колонок (Тип элемента коллекции)
- Связь колонок с данными SQL-запроса (Дескриптор)
- Связь навигационной панели на полученную таблицу (Представление)
SQL-запрос
Примечание |
---|
Список обязательных колонок, если по записи нужно потом получить объект (документ, заявку, справочник и т.д.): id, created_date, updated_date, Module, self_1, self_2, self_3. |
Получение данных:
- Системные поля прописаны в таблицах и их можно найти в разделе 4. Схема данных.
Настраиваемые поля хранятся в таблицах tn_field и tn_field_<тип данных> (string, date, datetime, decimal и т.д.)
Блок кода language sql title Запрос на получение значения из настаиваемого поля status linenumbers true collapse true select tfs."value" as v from tn_field join tn_field_string tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'status') as statusWPRequest
Поля из комплексного справочника хранятся в таблицах classifier_compleх, clscom_tag, cls_typeComp
Блок кода language sql title Запрос на получение значения из поля valueCountry комплексного справочника Офис (схема ComplectClassifierOffice) linenumbers true collapse true SELECT title FROM classifier_complex WHERE classifier_complex.id = ( SELECT complex1.id FROM clscom_tag tag1 left join clscom_to_tag to_tag1 on to_tag1.tag = tag1.id left join classifier_complex complex1 on complex1.id = to_tag1.classifier left join cls_typeComp typecom1 on typecom1.id = complex1.owner WHERE ( tag1.schema = 'ComplectClassifierOffice' and typecom1.alias = 'valueCountry' and tag1.id = tag.id )) ) as OfficeCountry
Кастомная коллекция
Кастомная коллекция представляет собой набор 2-х файлов:
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<collection name="WorkplaceRequests_(vw_cmj_all)" idField="id" replace="runtime">
<prototype>
<![CDATA[
SELECT
id,
created_date,
updated_date,
Module,
self_1,
self_2,
self_3,
typeRequest,
statusWPRequest,
stage,
regNumber,
rNumber,
numberWOTags,
wpInitiator,
term,
finishtime,
wpEmployee,
wpEmpDepartment,
wpEmpHierDepatment,
wpEmpGoingToWork,
wpMovingDate,
wpInitBranch,
wpOffice,
wpTypeOffice,
wpInitOrganization,
wpInitiatorDepartment,
wpLocality,
wpCountry,
wpArea,
wpFloor,
wpRoomNumber,
wpCode
FROM (
select
rkkbase.id,
rkkbase.created_date,
rkkbase.updated_date,
rkkbase.module AS Module,
'<id>' AS self_1,
':' AS self_2,
'</>' AS self_3,
rkkbase."type" AS typeRequest,
(select tfs."value" as v
from tn_field
join tn_field_string tfs on tn_field.access_object_id = tfs.id
where tn_field."owner" = rkkbase.id
and tn_field.owner_type = rkkbase.id_type
and tn_field.cmjfield = 'status') as statusWPRequest,
(select tfs."value" as v
from tn_field
join tn_field_string tfs on tn_field.access_object_id = tfs.id
where tn_field."owner" = rkkbase.id
and tn_field.owner_type = rkkbase.id_type
and tn_field.cmjfield = 'stage') as stage,
'<regNumberPrefix>' || coalesce(rkk.prjnumprist, '') || '</>' || '<regNumberCounter#Number>' || coalesce(cast(rkk.prjnumcounter as varchar), '') || '</>' || '<regNumberSuffix>' || coalesce(rkk.prjnumfin , '') || '</>' as regNumber,
rkk.prjnumcounter as rNumber,
coalesce(rkk.prjnumprist, '') || coalesce(cast(rkk.prjnumcounter as VARCHAR), '') || coalesce(rkk.prjnumfin, '') as numberWOTags,
(select
coalesce('<id>' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'%(.*)')
|| ':' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'(.*)%') || '</><shortName>'
|| substr(tfs."value", 1, strpos(tfs."value", '%') - 1) || '</>', '<id></><shortName></>') as v
from tn_field
join tn_field_string tfs on tn_field.access_object_id = tfs.id
where tn_field."owner" = rkkbase.id
and tn_field.owner_type = rkkbase.id_type
and tn_field.cmjfield = 'wpInitiator') as wpInitiator,
(select tfs."value" as v
from tn_field
join tn_field_datetime tfs on tn_field.access_object_id = tfs.id
where tn_field."owner" = rkkbase.id
and tn_field.owner_type = rkkbase.id_type
and tn_field.cmjfield = 'plannedfinishtime') as term,
(select tfs."value" as v
from tn_field
join tn_field_datetime tfs on tn_field.access_object_id = tfs.id
where tn_field."owner" = rkkbase.id
and tn_field.owner_type = rkkbase.id_type
and tn_field.cmjfield = 'finishtime') as finishtime,
(select tfs."value" as v
from tn_field
join tn_field_beard tfs on tn_field.access_object_id = tfs.id
where tn_field."owner" = rkkbase.id
and tn_field.owner_type = rkkbase.id_type
and tn_field.cmjfield = 'assignee') as assignee,
(select
coalesce('<id>' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'%(.*)')
|| ':' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'(.*)%') || '</><shortName>'
|| substr(tfs."value", 1, strpos(tfs."value", '%') - 1) || '</>', '<id></><shortName></>') as v
from tn_field
join tn_field_string tfs on tn_field.access_object_id = tfs.id
where tn_field."owner" = rkkbase.id
and tn_field.owner_type = rkkbase.id_type
and tn_field.cmjfield = 'wpEmployee') as wpEmployee,
(select date(tfs."value") as v
from tn_field
join tn_field_dateonly tfs on tn_field.access_object_id = tfs.id
where tn_field."owner" = rkkbase.id
and tn_field.owner_type = rkkbase.id_type
and tn_field.cmjfield = 'wpEmpGoingToWork') as wpEmpGoingToWork,
(select date(tfs."value") as v
from tn_field
join tn_field_dateonly tfs on tn_field.access_object_id = tfs.id
where tn_field."owner" = rkkbase.id
and tn_field.owner_type = rkkbase.id_type
and tn_field.cmjfield = 'wpMovingDate') as wpMovingDate,
(select
coalesce('<id>' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'%(.*)')
|| ':' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'(.*)%') || '</><shortName>'
|| substr(tfs."value", 1, strpos(tfs."value", '%') - 1) || '</>', '<id></><shortName></>') as v
from tn_field
join tn_field_string tfs on tn_field.access_object_id = tfs.id
where tn_field."owner" = rkkbase.id
and tn_field.owner_type = rkkbase.id_type
and tn_field.cmjfield = 'wpEmpDepartment') as wpEmpDepartment,
(select
tfs."value" as v
from tn_field
join tn_field_string tfs on tn_field.access_object_id = tfs.id
where tn_field."owner" = rkkbase.id
and tn_field.owner_type = rkkbase.id_type
and tn_field.cmjfield = 'wpEmpHierDepatment') as wpEmpHierDepatment,
(select
coalesce('<id>' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'%(.*)')
|| ':' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'(.*)%') || '</><shortName>'
|| substr(tfs."value", 1, strpos(tfs."value", '%') - 1) || '</>', '<id></><shortName></>') as v
from tn_field
join tn_field_string tfs on tn_field.access_object_id = tfs.id
where tn_field."owner" = rkkbase.id
and tn_field.owner_type = rkkbase.id_type
and tn_field.cmjfield = 'wpInitBranch') as wpInitBranch,
(select tfs."value" as v
from tn_field
join tn_field_string tfs on tn_field.access_object_id = tfs.id
where tn_field."owner" = rkkbase.id
and tn_field.owner_type = rkkbase.id_type
and tn_field.cmjfield = 'wpOffice') as wpOffice,
(select tfs."value" as v
from tn_field
join tn_field_string tfs on tn_field.access_object_id = tfs.id
where tn_field."owner" = rkkbase.id
and tn_field.owner_type = rkkbase.id_type
and tn_field.cmjfield = 'wpTypeOffice') as wpTypeOffice,
(select
coalesce('<id>' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'%(.*)')
|| ':' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'(.*)%') || '</><shortName>'
|| substr(tfs."value", 1, strpos(tfs."value", '%') - 1) || '</>', '<id></><shortName></>') as v
from tn_field
join tn_field_string tfs on tn_field.access_object_id = tfs.id
where tn_field."owner" = rkkbase.id
and tn_field.owner_type = rkkbase.id_type
and tn_field.cmjfield = 'wpInitOrganization') as wpInitOrganization,
(select
coalesce('<id>' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'%(.*)')
|| ':' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'(.*)%') || '</><shortName>'
|| substr(tfs."value", 1, strpos(tfs."value", '%') - 1) || '</>', '<id></><shortName></>') as v
from tn_field
join tn_field_string tfs on tn_field.access_object_id = tfs.id
where tn_field."owner" = rkkbase.id
and tn_field.owner_type = rkkbase.id_type
and tn_field.cmjfield = 'wpInitDepartment') as wpInitiatorDepartment,
(select tfs."value" as v
from tn_field
join tn_field_string tfs on tn_field.access_object_id = tfs.id
where tn_field."owner" = rkkbase.id
and tn_field.owner_type = rkkbase.id_type
and tn_field.cmjfield = 'wpLocality') as wpLocality,
(select tfs."value" as v
from tn_field
join tn_field_string tfs on tn_field.access_object_id = tfs.id
where tn_field."owner" = rkkbase.id
and tn_field.owner_type = rkkbase.id_type
and tn_field.cmjfield = 'wpCountry') as wpCountry,
(select
coalesce('<id>' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'%(.*)')
|| ':' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'(.*)%') || '</><shortName>'
|| substr(tfs."value", 1, strpos(tfs."value", '%') - 1) || '</>', '<id></><shortName></>') as v
from tn_field
join tn_field_string tfs on tn_field.access_object_id = tfs.id
where tn_field."owner" = rkkbase.id
and tn_field.owner_type = rkkbase.id_type
and tn_field.cmjfield = 'wpArea') as wpArea,
(select tfs."value" as v
from tn_field
join tn_field_string tfs on tn_field.access_object_id = tfs.id
where tn_field."owner" = rkkbase.id
and tn_field.owner_type = rkkbase.id_type
and tn_field.cmjfield = 'wpFloor') as wpFloor,
(select tfs."value" as v
from tn_field
join tn_field_string tfs on tn_field.access_object_id = tfs.id
where tn_field."owner" = rkkbase.id
and tn_field.owner_type = rkkbase.id_type
and tn_field.cmjfield = 'wpRoomNumber') as wpRoomNumber,
(select tfs."value" as v
from tn_field
join tn_field_string tfs on tn_field.access_object_id = tfs.id
where tn_field."owner" = rkkbase.id
and tn_field.owner_type = rkkbase.id_type
and tn_field.cmjfield = 'wpRMCode') as wpCode
FROM F_DP_Intrkk internalrkk
JOIN f_dp_rkk rkk ON rkk.id = internalrkk.id
JOIN f_dp_rkkbase rkkbase ON rkkbase.id = rkk.id
JOIN F_DP_Intrkk_Executor executor ON executor.owner = internalrkk.id
JOIN so_beard beard ON beard.id = executor.executor
WHERE rkkbase.isdeleted <> 1
AND rkk.regnumcnt IS NULL
) s
WHERE stage NOT IN ('Перемещена в архив')
AND 1 = 1
::where-clause
]]>
</prototype>
<counting-prototype>
<![CDATA[
SELECT
COUNT(1)
FROM (
SELECT
rkkbase.id
FROM F_DP_Intrkk internalrkk
JOIN f_dp_rkk rkk ON rkk.id = internalrkk.id
JOIN f_dp_rkkbase rkkbase ON rkkbase.id = rkk.id
JOIN F_DP_Intrkk_Executor executor ON executor.owner = internalrkk.id
JOIN so_beard beard ON beard.id = executor.executor
WHERE rkkbase.isdeleted <> 1 AND rkk.regnumcnt IS NULL
) s
WHERE stage NOT IN ('Перемещена в архив')
AND 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="created_date">
<criteria placeholder="where-clause">
<![CDATA[
cast(created_date as date) = cast({0} as date)
]]>
</criteria>
</filter>
<filter name="rNumber">
<criteria placeholder="where-clause"><![CDATA[ rNumber = {0} ]]></criteria>
</filter>
<filter name="rNumber_partial">
<criteria placeholder="where-clause"><![CDATA[ rNumber iLIKE ('%'||{0}||'%') ]]></criteria>
</filter>
<filter name="rNumber_L">
<criteria placeholder="where-clause"><![CDATA[ rNumber < {0} ]]></criteria>
</filter>
<filter name="rNumber_GE">
<criteria placeholder="where-clause"><![CDATA[ rNumber >= {0} ]]></criteria>
</filter>
<filter name="rNumber_Partial">
<criteria placeholder="where-clause"><![CDATA[ rNumber LIKE {0} ]]></criteria>
</filter>
<filter name="regNumber">
<criteria placeholder="where-clause"><![CDATA[ regNumber = {0} ]]></criteria>
</filter>
<filter name="regNumber_partial">
<criteria placeholder="where-clause"><![CDATA[ numberWOTags iLIKE ('%'||{0}||'%') ]]></criteria>
</filter>
<filter name="typeRequest">
<criteria placeholder="where-clause">
<![CDATA[
typeRequest = {0}
]]>
</criteria>
</filter>
<filter name="typeRequest_partial">
<criteria placeholder="where-clause">
<![CDATA[
typeRequest ilike '%'||{0}||'%'
]]>
</criteria>
</filter>
<filter name="wpInitiator">
<criteria placeholder="where-clause">
<![CDATA[
wpInitiator = {0}
]]>
</criteria>
</filter>
<filter name="wpInitiator_partial">
<criteria placeholder="where-clause">
<![CDATA[
wpInitiator ilike '%'||{0}||'%'
]]>
</criteria>
</filter>
<filter name="stage">
<criteria placeholder="where-clause">
<![CDATA[
stage = {0}
]]>
</criteria>
</filter>
<filter name="stage_partial">
<criteria placeholder="where-clause">
<![CDATA[
stage ilike '%'||{0}||'%'
]]>
</criteria>
</filter>
<filter name="statusWPRequest">
<criteria placeholder="where-clause">
<![CDATA[
wpStatus = {0}
]]>
</criteria>
</filter>
<filter name="statusWPRequest_partial">
<criteria placeholder="where-clause">
<![CDATA[
statusWPRequest ilike '%'||{0}||'%'
]]>
</criteria>
</filter>
<filter name="term_partial">
<criteria placeholder="where-clause">
<![CDATA[
cast(term as date) = cast({0} as date)
]]>
</criteria>
</filter>
<filter name="finishtime_partial">
<criteria placeholder="where-clause">
<![CDATA[
cast(finishtime as date) = cast({0} as date)
]]>
</criteria>
</filter>
<filter name="wpEmpGoingToWork_partial">
<criteria placeholder="where-clause">
<![CDATA[
cast(wpEmpGoingToWork as date) = cast({0} as date)
]]>
</criteria>
</filter>
<filter name="wpMovingDate">
<criteria placeholder="where-clause">
<![CDATA[
(wpMovingDate >= ({0})::timestamp and
wpMovingDate < (({0})::timestamp + interval '1 day'))
]]>
</criteria>
</filter>
<filter name="assignee">
<criteria placeholder="where-clause">
<![CDATA[
assignee = {0}
]]>
</criteria>
</filter>
<filter name="assignee_partial">
<criteria placeholder="where-clause">
<![CDATA[
assignee ilike '%'||{0}||'%'
]]>
</criteria>
</filter>
<filter name="wpEmployee">
<criteria placeholder="where-clause">
<![CDATA[
wpEmployee = {0}
]]>
</criteria>
</filter>
<filter name="wpEmployee_partial">
<criteria placeholder="where-clause">
<![CDATA[
wpEmployee ilike '%'||{0}||'%'
]]>
</criteria>
</filter>
<filter name="wpEmpDepartment">
<criteria placeholder="where-clause">
<![CDATA[
wpEmpDepartment = {0}
]]>
</criteria>
</filter>
<filter name="wpEmpDepartment_partial">
<criteria placeholder="where-clause">
<![CDATA[
wpEmpDepartment ilike '%'||{0}||'%'
]]>
</criteria>
</filter>
<filter name="wpInitBranch">
<criteria placeholder="where-clause">
<![CDATA[
wpInitBranch = {0}
]]>
</criteria>
</filter>
<filter name="wpInitBranch_partial">
<criteria placeholder="where-clause">
<![CDATA[
wpInitBranch ilike '%'||{0}||'%'
]]>
</criteria>
</filter>
<filter name="wpInitiatorDepartment">
<criteria placeholder="where-clause">
<![CDATA[
wpInitiatorDepartment = {0}
]]>
</criteria>
</filter>
<filter name="wpInitiatorDepartment_partial">
<criteria placeholder="where-clause">
<![CDATA[
wpInitiatorDepartment ilike '%'||{0}||'%'
]]>
</criteria>
</filter>
<filter name="wpLocality">
<criteria placeholder="where-clause">
<![CDATA[
wpLocality = {0}
]]>
</criteria>
</filter>
<filter name="wpLocality_partial">
<criteria placeholder="where-clause">
<![CDATA[
wpLocality ilike '%'||{0}||'%'
]]>
</criteria>
</filter>
<filter name="wpCountry">
<criteria placeholder="where-clause">
<![CDATA[
wpCountry = {0}
]]>
</criteria>
</filter>
<filter name="wpCountry_partial">
<criteria placeholder="where-clause">
<![CDATA[
wpCountry ilike '%'||{0}||'%'
]]>
</criteria>
</filter>
<filter name="wpArea">
<criteria placeholder="where-clause">
<![CDATA[
wpArea = {0}
]]>
</criteria>
</filter>
<filter name="wpArea_partial">
<criteria placeholder="where-clause">
<![CDATA[
wpArea ilike '%'||{0}||'%'
]]>
</criteria>
</filter>
<filter name="wpFloor">
<criteria placeholder="where-clause">
<![CDATA[
wpFloor = {0}
]]>
</criteria>
</filter>
<filter name="wpRoomNumber">
<criteria placeholder="where-clause">
<![CDATA[
wpRoomNumber = {0}
]]>
</criteria>
</filter>
<filter name="wpCode">
<criteria placeholder="where-clause">
<![CDATA[
wpCode = {0}
]]>
</criteria>
</filter>
<filter name="wpEmpHierDepatment">
<criteria placeholder="where-clause">
<![CDATA[
wpEmpHierDepatment = {0}
]]>
</criteria>
</filter>
<filter name="wpEmpHierDepatment_partial">
<criteria placeholder="where-clause">
<![CDATA[
wpEmpHierDepatment ilike '%'||{0}||'%'
]]>
</criteria>
</filter>
<filter name="BeforeDate">
<criteria placeholder="where-clause">
<![CDATA[
updated_date < {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="WorkplaceRequests_(vw_cmj_all)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>
</list>
</constructor-arg>
</bean>
</beans> |
Примечание |
---|
Названия корневого bean должно строиться из названия collection и префикса Metadata. Пример: WorkplaceRequests_(vw_cmj_all)Metadata |
Тип элемента коллекции
Описывает тип колонки и её название
Идентификатор колонки должен совпадать с названием колонки, возвращаемой в SQL-запросе кастомной коллекции.
Дескриптор
Дескриптор решает следующие задачи:
- Связывает колонки с табличными данными
- Управляет колонками: категоризация, сортировка, фильтрация, скрытие, важность и т.д.
- Определяет по какому алгоритму будут отображаться данные в Web-клиенте, с помощью builder
- Связывает с модулем
- Подключает кастомные кнопки
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<?xml version='1.0' encoding='UTF-8'?>
<catalog xmlns="http://www.intertrust.ru/schema/palette/cat-ui">
<custom-descriptor ident="WorkplaceRequests" view="WorkplaceRequests_(vw_cmj_all)" id="wp-request-all-docs-af5" name="Заявки на организацию РМ - Все" style="default">
<builder name="ru.intertrust.cm_sochi.srv.uicollections.UiBuilder">
<config>
<view-complex-classif level-select="all"/>
</config>
</builder>
<table>
<columns>
<column-ref ref="self" important="true"/>
<column-ref ref="created_date" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/>
<column-ref ref="typeRequest" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/>
<column-ref ref="regNumber" sort-asc="true" sort-desc="true" filter="true"/>
<column-ref ref="wpInitBranch" sort-asc="true" sort-desc="true" important="true" filter="true"/>
<column-ref ref="wpInitiator" sort-asc="true" sort-desc="true" important="true" filter="true"/>
<column-ref ref="wpInitiatorDepartment" sort-asc="true" sort-desc="true" important="true" filter="true"/>
<column-ref ref="wpEmployee" sort-asc="true" sort-desc="true" important="true" filter="true"/>
<column-ref ref="wpEmpDepartment" sort-asc="true" sort-desc="true" important="true" filter="true"/>
<column-ref ref="wpEmpHierDepatment" sort-desc="true" sort-asc="true" filter="true" invisible-default="true"/>
<column-ref ref="stage" sort-asc="true" sort-desc="true" important="true" filter="true"/>
<column-ref ref="statusWPRequest" filter="true" sort-asc="true" sort-desc="true" important="true"/>
<column-ref ref="term" sort-asc="true" sort-desc="true" important="true" filter="true"/>
<column-ref ref="finishtime" sort-asc="true" sort-desc="true" important="true" filter="true"/>
<column-ref ref="wpArea" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/>
<column-ref ref="wpCode" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/>
<column-ref ref="wpCountry" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/>
<column-ref ref="wpInitOrganization" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/>
<column-ref ref="wpFloor" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/>
<column-ref ref="wpLocality" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/>
<column-ref ref="wpRoomNumber" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/>
<column-ref ref="wpTypeOffice" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/>
<column-ref ref="wpOffice" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/>
<column-ref ref="wpEmpGoingToWork" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/>
<column-ref ref="wpMovingDate" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/>
</columns>
</table>
<custom-actions schema-ref="RkkReadersCollection"/>
</custom-descriptor>
</catalog> |
Представление
Представление связывает дескриптор с навигационной панелью.
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<view parent-ref="request" id="workplace-requests" name="${catalog.view.workplace_requests.name:Заявки на ОРМ}" position="10">
<pagename name="Заявки на ОРМ"/>
<descriptor-ref ref="wp-request-all-docs-af5"/>
<source>
<module ident="WorkplaceRequests"/>
</source>
</view> |
Инструменты отладки
Кастомные коллекции
Отлаживать кастомные коллекции можно через Управление конфигурациями. Данный раздел находится в админ-клиенте AF5 в Структуре Системы.
С помощью фильтров ищется нужная коллекция, открывается на редактирование, на вкладку Черновик вносится код xml-коллекции, сохраняется.
Image Modified
Далее выделяется данная коллекция и нажимается кнопка "Применить черновик"
Image Modified
Изменения применяются без dropcache
Дескрипторы и представления
Дескрипторы и представления отлаживать удобнее, через заливу Палитры XML, но возможность сделать через админку AF5 есть.
Нужно перейти в раздел Структура системы\Каталог\Папки и Структура системы\Каталог\Дескрипторы
Image Modified