Виджеты итогов
Glossary Item Box
Общая информация
Виджеты итогов (элементы аналитики) предназначены для анализа статистических данных разделов. Для работы с аналитикой раздела необходимо перейти в представление аналитики необходимого раздела. Если же необходима работа с данными всех разделов приложения, то нужно перейти в раздел [Итоги].
Подробнее о виджетах итогов, реализованных в bpm'online, можно узнать из статьи "Аналитика раздела".
Структура данных для хранения информации по итогам
Раздел итогов представляет собой зависящий от прав пользователя набор элементов-вкладок. Механизм работы с итогами реализован с помощью клиентского менеджера итогов DashboardManager и элементов DashboardManagerItem, которые и представляют вкладки. За итоги в системе отвечает объект SysDashboard. Свойства объекта SysDashboard описаны в таблице 1.
Таблица 1. Описание свойств объекта SysDashboard
Название | Заголовок | Тип | Описание |
---|---|---|---|
Caption | Заголовок | String | Данная информация отображается в заголовке вкладки. |
Position | Позиция | Number | Если позиция не задана, элементы отображаются в алфавитном порядке заголовков. |
Section | Раздел | Lookup | Раздел системы. |
ViewConfig | Конфигурация отображения элементов (виджетов) | Array |
[{ //Тип элемента (Terrasoft.ViewItemType). itemType: "4", // Название элемента. name: "SomeInvoiceChart", // Конфигурация отображения. layout: { columns: 4, rows: 4, colspan: 4, rowspan: 4 } }, {...}] |
Items | Конфигурация модулей элементов (виджетов) | JSON Object |
{ // Название элемента, для которого определяются настройки модуля. "SomeInvoiceChart": { // Название модуля для отображения элемента DashboardItem. “widgetType”: "Chart", // Параметры, необходимые для отображения данных конкретного элемента DashboardItem. “parameters”: { “caption”: "some caption", ... }, }, {...} } |
Реализация функциональности в режиме просмотра итогов
Иерархия классов, реализующих функциональность в режиме просмотра итогов, отображена на рис. 1.
Рис. 1. — Иерархия классов, реализующих функциональность в режиме просмотра итогов
Модуль SectionDashboardModule:
- SectionDashboardBuilder — класс, инкапсулирующий в себе логику генерации представления и класса модели представления для модуля раздела итогов.
- SectionDashboardsViewModel — класс модели представления раздела итогов.
- SectionDashboardsModule — класс модуля раздела итогов.
Модуль DashboardModule:
- DashboardViewConfig — класс, генерирующий конфигурацию представления для модуля страницы итогов.
- BaseDashboardViewModel — базовый класс модели представления страницы итогов.
- DashboardModule — класс, содержащий функциональность по работе с модулями итогов.
Модуль DashboardBuilder:
- DashboardsViewConfig — класс, генерирующий конфигурацию представления для модуля итогов.
- BaseDashboardsViewModel — базовый класс модели представления итогов.
- DashboardBuilder — класс построения модуля итогов.
Реализация функциональности в режиме настройки итогов
Иерархия классов, реализующих функциональность в режиме настройки итогов, отображена на рис. 2.
Рис. 2. — Иерархия классов, реализующих функциональность в режиме настройки итогов
Модуль DashboardDesigner:
- DashboardDesignerViewConfig — класс, генерирующий конфигурацию представления для модуля дизайнера итогов.
- DashboardDesignerViewModel — класс модели представления дизайнера итогов.
- DashboardDesigner — класс визуального модуля итогов.
Базовые классы, реализующие функциональность виджета
BaseWidgetViewModelClass — базовый класс модели представления виджетов. Для использования класса необходимо зарегистрировать в модуле такие сообщения:
- GetHistoryState (publish; ptp);
- ReplaceHistoryState (publish; broadcast);
- HistoryStateChanged (subscribe; broadcast);
- GetWidgetParameters (subscribe; ptp);
- PushWidgetParameters (subscribe; ptp) — если используется получение параметров от модулей (useCustomParameterMethods = true).
BaseWidgetDesigner — базовая схема представления настройки виджетов. Основные методы:
- getWidgetConfig() — возвращает объект актуальных настроек виджета.
- getWidgetConfigMessage() — возвращает название сообщения получения настроек модуля виджета.
- getWidgetModuleName() — возвращает название модуля виджета.
- getWidgetRefreshMessage() — возвращает название сообщения обновления виджета.
- getWidgetModulePropertiesTranslator() — возвращает объект соотношения свойств модуля виджета и модуля настройки виджета.
BaseAggregationWidgetDesigner — содержит методы для работы с агрегирующими колонками и типами агрегации.
DashboardEnums — содержит перечисление свойств, используемых в виджетах.
Terrasoft.DashboardEnums.WidgetType — содержит конфигурацию виджетов для режима просмотра (view) и режима настройки (design) итогов. Конфигурация определяется следующими свойствами:
- moduleName — название модуля виджета.
- configurationMessage — название сообщения получения настроек модуля.
- resultMessage — название сообщения для отдачи параметров настройки модуля дизайнера виджета.
- stateConfig (stateObj) — название схемы дизайнера виджета.