Настройки журнала с примерами

Выражения в качестве атрибутов

Примечание

Выражения должны поддерживаться источником данных. Фронтенд передает настроенные атрибуты в источник данных «как есть» и ожидает, что сервер понимает как с ними работать.

При настройке колонки журнала можно перейти в расширенные настройки и в поле «Атрибут» указать сложное выражение, которое в дальнейшем можно будет использовать для группировки, сортировки, поиска и отображения.

../../../_images/expression_attribute.png

Выражение должно быть записано в круглых скобках. Исключение - если выражение состоит из одной функции, то скобки не требуются.

Подробнее о синтаксисе и списке доступных функций можно посмотреть в ecos-data

Параметр «2.3 Атрибут для поиска»

В конфигурацию столбца журнала добавлен параметр 2.3 Атрибут для поиска - атрибут, который нужно получить у записей из подзапроса. По умолчанию из подзапроса берутся идентификаторы найденных сущностей, но можно взять у этих сущностей какой-то атрибут при надобности.

В любом журнале со включенными фильтрами выбрать столбец с текстовым поиском, задать фильтр.

При применении фильтра UI строит и отправляет запрос с url: http://host/gateway/api/records/query?

В теле запроса, query предикат который мы задали фильтром по столбцу:

"query": {
...
            {
            "att": "someAttName",
            "t": "eq",
            "val": "1000"
            }
...
}

При построении этого query,в предикате значение att меняется на значение параметра searchAttribute из конфигурации столбца журнала.

Такой поиск планируется использовать для вычисляемых атрибутов. Отображать в журнале они будут то, что сконфигурировано в computed att, а поиск должен выполняться по заданному в конфигурации столбца атрибуту.

Фильтр по тексту в колонке „assoc“. Настройки innerQuery

  1. Расширены настройки – добавлена возможность использовать RecordsQuery. Например, на вычисляемых полях, что позволяет формировать произвольный запрос к разным источникам данных.

  2. Для решения вопроса - когда пользователь выбирает произвольные предикаты (Contains, Equals, Starts with, …) при настройке фильтра добавлен еще один тег в запрос - $PREDICATE_TYPE - для его замены на клиентской части.

  3. Добавлен атрибут - innerQueryAttribute, для возможности настройки отображения:

searchConfig: {
delimiters: [],
searchByText: {
    {
    "innerQuery": {
        "sourceId": "",
        "page": {
        "maxItems": 25
        },
        "query": {
        "t": "and",
        "val": [
            {
            "att": "TYPE",
            "val": "currency",
            "t": "eq"
            },
            {
            "att": "currencyCode",
            "val": "$TEXT",
            "t": "$PREDICATE_TYPE"
            }
        ]
        }
    },
    "innerQueryAttribute": ""
    }
}
}

Рассмотрим пример. Настроим поиск только по колонке «Статус».

  1. Перейти в дополнительные настройки колонки:

../../../_images/0123.png
  1. Тип редактора указать text:

../../../_images/0223.png
  1. В разделе Search Config в запросе введите:

Совет

Запрос нужно задавать как можно точнее, с указанием типа запрашиваемой ноды.

{
"t": "and",
"val": [
    {
    "att": "TYPE",
    "val": "icase:caseStatus",
    "t": "eq"
    },
    {
    "att": "title",
    "val": "$TEXT",
    "t": "$PREDICATE_TYPE"
    }
]
}
  1. Укажите необходимое Количество записей подзапроса:

Количество записей подзапроса - сколько максимально записей на данный запрос вернет сервер. Далее эти ноды будут использоваться как фильтр для формирования основного запроса - для отображения нужных записей в самом журнале.

Но в ответе также будет приходить число, сколько сервер всего нашел записей, и если это число больше указанного количества записей подзапроса, то в интерфейсе будет показываться сообщение о необходимости задать более точный фильтр.

../../../_images/0317.png

Сохраните.

Поиск осуществляется только по колонке «Статус»:

../../../_images/0415.png

Настройки фильтрации колонки

В журнале для колонок появилась настройка headerFilterEditor.

В настройках типа данных можно изменить фильтр с Select Journal на текстовое поле:

Фильтр Select Journal:

Для изменения неоходимо в журнале рядом с названием нажать:

У необходимой колонки нажать «Дополнительно» :

Указать настройки, как ниже:

Фильтр Select Journal изменен на текстовый:

Настройки отображения суммы для колонки

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

await Records.query({sourceId: 'emodel/ecos-contract', query: {}, language: 'predicate', groupBy: ['*']}, 'sum(amount)');
await Records.queryOne({sourceId: 'emodel/ecos-contract', query: {}, language: 'predicate', groupBy: ['*']}, 'sum(amount)?num');

Включение или выключение отображения суммы для каждой колонки производится отдельно по каждому атрибуту. Тип атрибута должен быть Number.


Общая сумма учитывает только форматтеры NumberFormatter и DurationFormatter

В нижней части столбца будет отображаться общая сумма значений столбца: