AZykov (обсуждение | вклад) |
AZykov (обсуждение | вклад) |
||
| Строка 64: | Строка 64: | ||
=== Настройка визуализации данных === | === Настройка визуализации данных === | ||
[[Файл:Модифицированный отчет.png|центр|безрамки|1078x1078пкс|Модифицированный отчет]] | |||
=== Настройка логики получения и обработки данных === | |||
Настройка логики получения и обработки данных | |||
[[Категория:Курс Разработка приложений]] | [[Категория:Курс Разработка приложений]] | ||
[[Категория:Практика]] | [[Категория:Практика]] | ||
Версия от 10:58, 2 сентября 2025
Дополнительную информацию о разработке отчетов можно подчерпнуть в данной статье.
Для выполнения данного примера крайне рекомендуется пройти курс по разработке приложений.
Общая информация
Периодически возникает необходимость модифицировать базовый отчет, либо создать на его основе свою версию. Зачастую модификация необходима для решения следующих задач:
- Добавление дополнительных фильтров данных
- Вывод дополнительных данных
- Предварительная обработка данных отчета
- Изменение параметров визуализации
В рамках платформы Эра, задача модификации отчета решается с помощью создания собственного контрола и механизма подмен (shifts).
Общий алгоритм следующий:
- Найти необходимый контрол базового отчета
- Создать в своём пакете собственный контрол, скопировав в него все параметры базового
- Внести необходимые изменения в параметры контрола
- Заместить базовый контрол новым при помощи подмены*
- Применить изменения пакета
Пункт 4 является опциональным, если нет необходимости замещать базовый отчет собственной версией. Свою версию отчета можно разместить в отдельном приложении, либо сделать подмену приложения Отчеты и внести в него свой отчет отдельной вкладкой.
Далее, на примере базового отчета "Звонки по суткам" разберем весь процесс.
Шаг 1. Поиск контрола базового отчета

Самый простой способ найти контрол отчета - это поиск по полному имени в пакете callcenter.
Для этого необходимо взять адрес страницы с отчетом:
https://[ERA_FQDN]/app/callcenter_reports/#/ui/callcenter/reports/seances/ArchiveSeancesByDateReport
Из него необходимо взять строку после /ui/:

callcenter/reports/seances/ArchiveSeancesByDateReport
Далее, в приложении Builder, в разделе Controls необходимо выбрать пакет callcenter (все базовые отчеты хранятся именно в этом пакете) и указать полученное ранее значение в строке поиска.
В текущем примере "Звонки по суткам" выводится два отчета на одну страницу, поэтому сам контрол имеет тип layout, и не будет содержать настроек получения данных. Однако, в нем будут указаны вложенные контролы, которые нам и необходимы:

В коллекции items находятся два контрола - с типом table и с типом chart. Они соответствуют левой и правой области в отчете.
При этом оба этих контрола имеют общие фильтры, которые как раз определены в "родительском" контроле с типом layout.
Если необходимо добавить дополнительный фильтр в отчеты, то нужно скопировать (и при необходимости, подменить) все три контрола - В родительском необходимо добавить сам фильтр, а в дочерних - добавить применение нового фильтра к выборке данных.
Далее, разберем копирование и замещение контрола на примере "дочернего" creomate_tutorial/reports/seances/ArchiveSeancesByDateChart, который выводит график в правой части отчета.
Шаг 2. Копирование контрола

В своем пакете необходимо создать новый контрол. Для того, чтобы не путаться, рекомендуется использовать имя контрола-копии идентичное имени базового контрола. Отличаться они будут по имени пакета. Тип контрола (controlKind) так же можно при необходимости переопределить, для того чтобы изменить способ визуализации выводимых данных. В нашем случае, мы оставляем chart. Режим работы контрола необходимо выбрать Custom.
После заполнения базовых параметров, необходимо сохранить контрол и переоткрыть его карточку, чтобы появились дополнительные параметры, специфичные для конкретного типа контрола.

Для удобстве дальнейшей модификации, рекомендуется полностью скопировать все значения свойств из базового контрола (включая все JSONы). Далее, при необходимости, их можно будет изменять. Такой подход позволяет сначала получить рабочий контрол и затем его модифицировать, вместо того чтобы сразу описывать новые параметры и искать в них ошибки.
После того, как все параметры скопированы, контрол необходимо сохранить.
Шаг 3. Модификация параметров контрола
В рамках контрола может быть настроены как параметры визуализации данных, так и логика их получения и обработки.
Набор возможностей по настройке достаточно обширен, поэтому в данной статье получится разобрать только некоторые примеры модификаций.
Настройка визуализации данных
