Виджет "Контейнер" (DataCube.Widgets.Container) предназначен для отображения вложенных визуализаций, дашбордов и виджетов с возможностью их переключения. Он позволяет создавать сложные панели с несколькими вкладками, каждая из которых может содержать отдельный визуальный элемент.
Основные возможности:
- Вложение различных визуальных элементов: В контейнер можно помещать дашборды, визуализации, виджеты и формы.
- Переключение между панелями: Пользователь может переключаться между панелями с помощью табов.
- Различные режимы активации панелей: Панели могут активироваться по событию, по сообщению или по правилу.
- Настройка отображения табов: Можно настроить положение, выравнивание и видимость табов.
- Поиск виджетов/дашбордов по названию Можно указать название виджета/дашборда для автоматического поиска и загрузки.
- Передача глобального фильтра: Можно настроить, будет ли панель получать данные из глобального фильтра.
- Инициализация всех панелей Можно загрузить все панели при инициализации для быстрого переключения.
Настройка виджета:
-
Данные (source):
- Укажите источник данных для виджета. Этот источник данных может использоваться в правилах активации панелей.
-
Панели (panelSettings):
- Панель (dashboardItem): Каждый элемент в этом разделе определяет отдельную панель в контейнере.
- Название панели (dashboardKey): Укажите уникальное имя для панели. Это имя будет отображаться в табе (если табы включены) и использоваться для активации панели.
- Режим (panelMode): Выберите, что будет отображаться на панели:
- Дашборд/визуализация (dashboardPanelMode): Отображает существующий дашборд, визуализацию или виджет.
- Дашборд (dashboard): Перетащите из проекта дашборд, визуализацию или виджет, который будет отображаться на панели.
- Передавать глобальный фильтр (propagateGlobalFilter): Если включено, панель будет получать данные из глобального фильтра.
- Встроенный виджет (widgetPanelMode): Создает и отображает новый виджет внутри панели.
- Виджет (embeddedWidget): Выберите и настройте виджет, который будет отображаться на панели. Поле "Данные" (linkTo: 'source') указывает на источник данных, который будет использоваться для виджета.
- Объект поиска (searchPanelMode): На панели будет отображен виджет или дашборд, найденный по имени.
- Название (шаблон) (objectSearchName): Укажите название, по которому будет произведен поиск виджета или дашборда. Можно использовать шаблонизацию DoT для формирования имени из данных. Для доступа к данным используйте {{ }}. Например:
{{=it.row.fieldName}}
.
- Область поиска (objectSearchScope): Определяет где будет произведен поиск виджета/дашборда
- в текущем дашборде (objectSearchScopeDashboard) Поиск будет произведен в рамках текущего дашборда (включая виджеты и вложенные дашборды)
- в указанных дашбордах/папках (objectSearchScopeObjects) Поиск будет произведен в объектах, указанных ниже.
- Укажите объекты где искать (objectSearchScopeObjectsEntries) Укажите дашборды, папки или виджеты, где будет произведен поиск.
- Искать рекурсивно в папках (objectSearchScopeObjectsRecursive) Если включено, поиск будет произведен во всех вложенных папках.
- в проекте (objectSearchScopeWorkspace) Поиск будет произведен по всему проекту.
- Передавать глобальный фильтр (objectPropagateGlobalFilter) Если включено, найденный виджет будет получать данные из глобального фильтра.
- Режим активации (activationMode): Определяет, как будет активироваться панель:
- По событию (activateByEvent): Панель активируется при наступлении определенного события.
- События (activationEvents): Выберите одно или несколько событий, при наступлении которых будет активироваться панель.
- По сообщению (activateByMessage): Панель активируется при получении определенного сообщения.
- Уникальный ключ (msgKey): Укажите уникальный ключ сообщения, которое будет активировать панель. Сообщения должны отправляться другим элементом путем отправки сообщения "DataCube.Widgets.PublishMessage".
- По правилу (activateByRule): Панель активируется при выполнении заданного правила.
- Переменные (variables): Определите переменные, которые будут использоваться в правиле.
- Поле (varField) Выберите поле из источника данных
- Изменить имя переменной (varName) Позволяет изменить имя переменной на пользовательское.
- Условие активации (expression): Напишите JavaScript выражение, которое определяет условие активации. Активация произойдет, если выражение вернет
true
. Доступны переменные, определенные в разделе "Переменные". Пример: myVar1 == myVar2
.
-
Поведение (behaviorSettings):
- По умолчанию (activateOnStart): Выберите панель, которая будет активна при загрузке виджета.
- Инициализировать все панели (loadAllOnStart): Если включено, все панели будут загружены и инициализированы при запуске. Это может улучшить производительность при переключении между панелями, но может увеличить время первоначальной загрузки.
-
Табы (displaySettings):
- Отображать табы (displaySettingsShowTabs): Включение или отключение отображения табов.
- Расположение (tabPosition) Выберите расположение табов: сверху, снизу, слева или справа.
- Выравнивание (tabAlign): Определите выравнивание табов: от начала, по середине, от конца.
-
Стиль табов (backStyle/tabStyle)
- В этом разделе можно настроить визуальный стиль отображения табов.
Как использовать:
- Добавьте виджет "Контейнер" на дашборд.
- Настройте источник данных (если необходимо).
- Добавьте панели, указав их содержимое и режим активации.
- Настройте поведение и отображение табов.
- Сохраните и проверьте результат.
Примеры использования:
- Создание многостраничного отчета: Разместите несколько дашбордов в разных панелях и настройте переключение между ними с помощью табов.
- Динамическая загрузка виджетов: Используйте режим "Объект поиска" для динамической загрузки виджетов в зависимости от выбранных параметров.
- Переключение панелей по событиям: Используйте режим активации "По событию" для переключения панелей при нажатии кнопок или изменении значений других виджетов.
- Активация по сообщению: Используйте режим активации "По сообщению" для переключения панелей при наступлении событий, инициированных из других частей системы.
- Активация по правилу Используйте режим "По правилу" для активации панелей в зависимости от данных. Например, можно показать панель с детализацией, если в текущей панели выбрано определенное значение.
Ограничения:
- В контейнер нельзя помещать текущую визуализацию, внутри которой он размещен.
- Избегайте циклических зависимостей при вложении визуальных элементов.
Заключение:
Виджет "Контейнер" является мощным инструментом для организации сложных пользовательских интерфейсов. Его гибкость и настраиваемость позволяют создавать разнообразные дашборды и визуализации с динамическим содержимым.