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

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

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Постановка задачи

Добавить вывод результатов поиска для нового модуля

Подсказка
iconfalse

Инструмент: Палитра XML, Плагин, Настройка системы

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

Статус
colour

Yellow

Green
title

В РАБОТЕ

ГОТОВО

Автор
Раздел
Васильев Антон 
Поиск
Комментарий
панель

На этой странице:

Оглавление

Постановка задачи

Добавить вывод результатов поиска

Инструмент

Палитра XML
Информация по настройкам параметра поиска находится здесь Описание конфигурации поиска

Реализация

note Блок кода
Информация
iconfalse

Последовательность действий по отображению поиска:

  1. Редактирование конфигурации поиска applicationContext-config-search<Project>.xml
  2. Создание представления типа объекта
  3. Загрузить конфигурацию поиска и перезагрузить сервер
  4. Загрузить Палитру XML

Легенда: 

  • <Project> - название проекта
  • <Module> - название модуля
  • <Cell-View> - название представление типа объекта
  • <Column> - название колонки
  • <Field> - название поля

Редактирование конфигурации поиска

Блок кода
languagexml
titleКонфигурация отображения результатов поиска
<!-- Конфигурация отображения результатов поиска (
<Module>
{Module}) -->
    <bean id="
moduleExtractorConfig<Module>
moduleExtractorConfig{Module}" parent="moduleExtractorConfigSuper">
        <!-- 
Отображение
Настройка 
формы
соответствий 
документа
«id 
на
бандла 
имя
 
корневого
представление типа объекта» -->
        <property name="rootTypesByBundleID">
            <map merge="true">
                <entry key="rkk" value="
<Cell
{Cell-
View>
View}" />
                <entry key="mainDoc" value="
<Cell
{Cell-
View>
View}" />
            </map>
        </property>
        <!-- 
Отображение
Настройка 
имя
соответствий 
формы
«Форма 
notes
 
документа
id 
на
бандла» 
ID бандла
-->
        <property name="bundleIDsByForm">
            <map merge="true">
                <entry key="
<Module>
{Module}" value="rkk" />
            </map>
        </property>
		<!--Настройка соответствий «колонки- системного поля»-->
        <property name="nsFieldsByClTypeByBundleID">
            <map merge="true">
                <entry key="
rkk#<Column>
rkk#{Column}" value="
<Field>
{Field}" />
                <entry key="
mainDoc#<Column>
mainDoc#{Column}" value="
<Field>
{Field}" />
            </map>
        </property>
		<!--Настройка соответствий «колонки - кастомного поля»-->
        <property name="formulasByClTypeByBundleID">
            <map merge="true">
                <entry key="
rkk#<Column>
rkk#{Column}" value="doc.getItemValueString('
<Field>
{Field}')" />
                <entry key="
mainDoc#<Column>
mainDoc#{Column}" value="doc.getItemValueInteger('
<Field>
{Field}') == 0 ? doc.getItemValueString('<Field 1>'):doc.getItemValueString('<Field 2>')"/>
            </map>
        </property>
		<!--Сортировка-->
	   	<property name="sortingsByFields">
            <set>
                <ref bean="sortingParams{Field}"/>
            </set>
        </property>
    </bean>
Блок кода
languagexml
<cell-view name="directives-search-result"> <column-ref ref="regFullNumber"/>
titleПараметры сортировки результатов поиска
    <!--Список параметров, которые используются при создании бинов 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="sortingParams{Field}"
        
<column-ref
  
ref
class="
documentDate"/
ru.intertrust.cmj.af.search.dp.docinfo.SortingParams">
        
<column-ref ref="reqType"
<property name="columnName" value="{Column}" />
        
<column-ref ref="orgBank"
<property name="sortingFieldName" value="{Field}" />
        
<column-ref ref="agencyOrgBank"
<property name="sortingFieldType" value="String" />
        
<column-ref ref
<property name="default" value="
subject
true" />
        
<column-ref ref="bankRepresentative"
<property name="defaultSortingDirection" value="descendant" />
        
<column-ref ref="affirmAndUOB"
<property name="bundleId" value="{Cell-View}" />
        
<column-ref
<property 
ref
name="
directiveInitBranch"/>
sortingDirections">
            <set>
                <value>descendant</value>
                <value>ascendant</value>
            </set>
        </property>
   
<column-ref ref="directiveInitDepartment"/>
 </bean>


Создание представление типа объекта

Блок кода
languagexml
titleПредставление типа объекта
<!-- Колонка -->
<column name="{Column}" subject="${column.Name:Название колонки}" extends="string"/>

<!--Представление типа объекта -->
<cell-view name="{Cell-View}">
   <column-ref ref="
self
{Column}"/>
</cell-view>



панель
title<Название видео>

Примечание
iconfalse
titleЛегенда
  • {Project} - название проекта
  • {Module} - название модуля
  • {Cell-View} - название представление типа объекта
  • {Column} - название колонки
  • {Field}- название поля