Постановка задачи
Добавить вывод результатов поиска для нового модуля
Инструмент
Палитра XML, Плагин, Настройка системы
Реализация
Редактирование конфигурации поиска
Конфигурация отображения результатов поиска
<!-- Конфигурация отображения результатов поиска (<Module>) --> <bean id="moduleExtractorConfig<Module>" parent="moduleExtractorConfigSuper"> <!-- Настройка соответствий «id бандла – представление типа объекта» --> <property name="rootTypesByBundleID"> <map merge="true"> <entry key="rkk" value="<Cell-View>" /> <entry key="mainDoc" value="<Cell-View>" /> </map> </property> <!-- Настройка соответствий «Форма – id бандла» --> <property name="bundleIDsByForm"> <map merge="true"> <entry key="<Module>" value="rkk" /> </map> </property> <!--Настройка соответствий «колонки- системного поля»--> <property name="nsFieldsByClTypeByBundleID"> <map merge="true"> <entry key="rkk#<Column>" value="<Field>" /> <entry key="mainDoc#<Column>" value="<Field>" /> </map> </property> <!--Настройка соответствий «колонки - кастомного поля»--> <property name="formulasByClTypeByBundleID"> <map merge="true"> <entry key="rkk#<Column>" value="doc.getItemValueString('<Field>')" /> <entry key="mainDoc#<Column>" value="doc.getItemValueInteger('<Field>') == 0 ? doc.getItemValueString('<Field 1>'):doc.getItemValueString('<Field 2>')"/> </map> </property> </bean>
Параметры сортировки результатов поиска
<!--Список параметров, которые используются при создании бинов SortingParams: -columnName - имя колонки, при клике на которую будет происходить сортировка -sortingFieldName - имя поля в Notes, по значению которого будет идти сортировка nodes из ресурса. Если sortingFieldName = null, то сортировка будет идти по значению поля columnName в ресурсе. -sortingFieldType - тип значения в сравниваемом поле Если sortingFieldType = Integer, то при сортировке значения сравниваются как числа, иначе - как строки. Предполагается, что тип DateTime не нужен, т.к. маловероятно, что при клике на колонку, в которой отображается дата/время, будет идти сортировка по какому-то значению, отличному непосредственно от дата/время, а в JSON дата/время всегда будут в формате yyyy-mm-ddThh:mm:ssZ (такие значения можно сортировать, сравнивая как строки). -default - указывает будет ли совершена эта сортировка по умолчанию (может быть только одна сортировка по умолчанию для бандла, для добавления другой необходимо разнести по бандлам сортировки) -defaultSortingDirection - Указывает направление сортировки по умолчанию (descendant/ascendant) -bundleId - указывает id бандла для которого применяется сортировка, для каждого бандла надо делать свою, так как поля у объектов и имена колонок могут отличаться id бандлов: rkk-search-result, mainDoc-search-result и др. По умолчанию rkk-search-result -sortingDirections - выбранное направление сортировки (по убыванию/по возрастанию) - принимает <set> --> <bean id="sortingParamsMainDocDate" class="ru.intertrust.cmj.af.search.dp.docinfo.SortingParams"> <property name="columnName" value="regDate" /> <property name="sortingFieldName" value="regDate" /> <property name="sortingFieldType" value="String" /> <property name="default" value="true" /> <property name="defaultSortingDirection" value="descendant" /> <property name="bundleId" value="mainDoc-search-result" /> <property name="sortingDirections"> <set> <value>descendant</value> <value>ascendant</value> </set> </property> </bean>
Создание представление типа объекта
Представление типа объекта
<!-- Колонка --> <column name="<Column>" subject="${column.Name:Название колонки}" extends="string"/> <!--Представление типа объекта --> <cell-view name="<Cell-View>"> <column-ref ref="<Column>"/> </cell-view>