AZykov (обсуждение | вклад) Нет описания правки |
AZykov (обсуждение | вклад) |
||
| Строка 38: | Строка 38: | ||
В текущем примере "Звонки по суткам" выводится два отчета на одну страницу, поэтому сам контрол имеет тип layout, и не будет содержать настроек получения данных. Однако, в нем будут указаны вложенные контролы, которые нам и необходимы: | В текущем примере "Звонки по суткам" выводится два отчета на одну страницу, поэтому сам контрол имеет тип layout, и не будет содержать настроек получения данных. Однако, в нем будут указаны вложенные контролы, которые нам и необходимы: | ||
[[Файл:Контролы внутри layout'а.png|центр|безрамки|1070x1070пкс]] | [[Файл:Контролы внутри layout'а.png|центр|безрамки|1070x1070пкс]]В коллекции items находятся два контрола - с типом table и с типом chart. Они соответствуют левой и правой области в отчете. | ||
При этом оба этих контрола имеют общие фильтры, которые как раз определены в "родительском" контроле с типом layout. | |||
Если необходимо добавить дополнительный фильтр в отчеты, то нужно скопировать (и при необходимости, подменить) все три контрола - В родительском необходимо добавить сам фильтр, а в дочерних - добавить применение нового фильтра к выборке данных. | |||
Далее, разберем копирование и замещение контрола на примере "дочернего" creomate_tutorial/reports/seances/ArchiveSeancesByDateChart, который выводит график в правой части отчета. | |||
= Шаг 2. Копирование контрола = | |||
[[Категория:Курс Разработка приложений]] | [[Категория:Курс Разработка приложений]] | ||
[[Категория:Практика]] | [[Категория:Практика]] | ||
Версия от 10:42, 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, который выводит график в правой части отчета.