Перейти к основному содержимому

Управляющий дэш

Управляющий дэш — дэш, предназначенный для настройки и фильтрации данных в аналитических дэшах.

Управляющий дэш

По-умолчанию в управляющем дэше строковые размерности отображены как чек-боксы,

Размерность с типом “строка” в управляющем дэше

размерности типа “период” отображены календарем с выбором диапазона дат для отображения,

Размерность с типом “период” в управляющем дэше

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

Размерность с типом “число” в управляющем дэше

Блоки конструктора

Логика работы конструктора для данного дэша представлена в расширенном руководстве пользователя.

JSON-конфигурация

Ключи title (глава 1.2.1), frame (глава 1.2.3) работают аналогично описанию в руководстве по конфигурации дэшлетов в соответствующих блоках.

Далее представлена таблица ключей, поддерживаемых дэшем “Управляющий дэш”.

dataSource

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

Опции koob, dimensions, sortBy, xAxis, из секции dataSource подробно описаны в руководстве по конфигурации дэшлетов (глава 1.2.4).

Название ключаВозможные значенияОписание
titleСтрокаУказание заголовка для показателя, отображаемого в легенде и всплывающей подсказке (если редактируется показатель, лежащий на оси Y), либо изменение подписи показателя на оси (если редактируется показатель, лежащий на оси Х).
typestring / radioЗначение string указывается тогда, когда необходимо отобразить чек-боксами размерность типа “число” или “период”. Значение radio указывается тогда, когда необходимо ограничить возможность выбора одним показателем (radiobutton).
calendarTypesimple / complexзначение simple указывается для отображения только простого календаря, а complex - для отображения только сложного календаря.
granularityday/ week/ month/ quarter/ yearМассив с перечислением доступных типов периода: день(day), неделя(week), месяц(month), квартал(quarter), год(year). Работает только для размерностей типа “Период”.
defaultGranularityday/ week/ month/ quarter/ yearВключенный по умолчанию тип периода. Работает только для размерностей типа “Период”.
timepickerbooleanЕсли true, то выводятся поля ввода для указания времени начала диапазона и конца. Используется, если размерность типа timestamp. По-умолчанию false
осторожно

Внимание! С версии 9.3.2 luxmsbi-web айди справочников автоматически отображаются как числовые значения. Для отображения заголовков справочника необходимо указать type: ‘STRING’.

к сведению

Для указания конкретной работы радиобаттонов необходимо в конфигурации куба указать defaultValue с конкретным показателем (описано ниже).

Правила указания данных стилей представлены в руководстве по конфигурации дэшлетов (глава 1.2.4).

options

Описывает различные дополнительные настройки при отображении деша.

Пример указания:

"options": ["Fixed"].
Название ключаОписание
FixedПри включенной опции дэш закреплен на экране при скроллировании.
EastPanelДублирование дэша в правой выдвигающейся панели.
!TopBarСкрыть заголовок дэша.
HiddenСокрытие дэша.
TransparentФон дэша соответствует фону подложки дэшборда.
ApplyFilterButtonsВключает режим фильтрации после подтверждения действия (кнопка применения фильтров и отмены).
ResetButton / !ResetButtonОпция управляющего дэша, которая позволяет показать/скрыть иконку “Очистить все фильтры” и “Сбросить фильтр” в зависимости от уровня, на котором опция указана. По умолчанию у управляющего дэша и у размерности установлено ResetButton, если у размерности указан тип radio - !ResetButton
ResetButtonToDefault / !ResetButtonToDefaultопция управляющего дэша, которая позволяет показать/скрыть иконку “Сбросить фильтры по умолчанию” в зависимости от уровня, на котором опция указана. По умолчанию у управляющего дэша установлено ResetButtonToDefault, у размерности !ResetButtonToDefault, если у размерности указан тип radio - ResetButtonToDefault
SearchAsFilterС версии 10.0.1 поиск в управляющем дэше работает как поиск. Для включения режима “поиск как фильтр” указывается опция SearchAsFilter. Опция может быть указана как для всех показателей, так и выборочно
RegexSearchПоиск по показателям размерности фильтрует список по введенному регулярному выражению.

Пример указания опций ResetButton и ResetButtonToDefault, который убирает из интерфейса кнопку “Сбросить фильтр” у конкретной размерности, кнопка “Сбросить фильтр по умолчанию” присутствует.

dataSource: {
koob: 'a.b',
style: {
category: {
type: 'radio',
options: [
'ResetButtonToDefault',
'!ResetButton',
],
},
},

Аналогичным образом сущестует возможность указать опцию PanelOpened, которая открывает список показателей размерности по умолчанию.

dataSource: {
koob: 'a.b',
style: {
category: {
options: [
'PanelOpened',
],
},
},

Для размерностей типа “строка” поисковое поле отображется в случае, если для отображения всех показателей необходим скролл. В случае необходимости отображения поискового поля в любом варианте необходимо добавить опцию Search и !Search для постоянного скрытия поля.

dataSource: {
koob: 'a.b',
style: {
category: {
options: [
'Search',
],
},
},

Особенности работы с управляющим дэшем

Стилизация шапки управляющего дэша

Также существует возможность стилизации шапки и тела управляющего дэша. Для указания цвета фона управляющего дэша необходимо указать ключ bgColor со значением HEX цвета. Для стилизации шапки управляющего дэша в объекте display необходимо указать поле headerStyle, в котором можно прописать следующие поля:

  • color - указание цвета заголовка
  • backgroundColor - указание цвета фона шапки
  • textAlign - ориентация заголовка в шапке (допустимые значения: left, right, center)

Каскадные фильтры

Для реализации каскадных фильтров в конфигурации управляющего дэша необходимо прописать массив hierarchy с указанием иерархии.

Простой календарь с указанием временного промежутка

Для отображения полей ввода для диапазона времени необходимо в блоке style для размерности типа PERIOD указать timepicker: true.

Управляющий дэш с указанием диапазона времени

По-умолчанию в поле ввода “время начала” указывается самое ранее время самой ранней даты. В поле ввода “время конца” указано самое позднее время последней доступной даты.

При изменении диапазона дат в поле ввода “время начала” будет указано время 00:00:00, а в поле “время конца” 23:59:59 для отображения всего временного промежутка в выбранном диапазоне дат. В случае необходимости, введите необходимый временной промежуток для отображения ограниченного диапазона.

JSON-конфигурация данного дэша выглядит следующим образом:

{
frame: {
h: 8,
w: 3,
x: 9,
y: 0,
},
dataSource: {
koob: 'luxmsbi.test_data_timestamp_csv',
style: {
data1_time: {
timepicker: true,
},
},
xAxis: 'data1_time',
yAxis: 'measures',
dimensions: [
'data1_time'
],
},
view_class: 'filtrovator',
title: '',
}

Сложный календарь

В Luxms BI существует 2 варианта отображения календаря: простой и сложный. Сложный раскрывается растягиванием за левый нижний угол календаря. В случае необходимости отображения только одного из вариантов, необходимо использовать опцию calendarType, принимающую 2 варианта значения:

  • simple - для отображения только простого календаря;
  • complex - для отображения только сложного календаря.

Ниже представлен вариант отображения сложного календаря:

Сложный календарь

Подробности работы со сложным календарем описаны в Руководстве пользователя LuxmsBI

Пример JSON-конфигурации управляющего дэша со сложным календарем:

{
"frame": {
"h": 5,
"w": 4,
"x": 7,
"y": 0,
},
"dataSource": {
"koob": 'luxmsbi.public_maxexample',
"style": {
"dt":{
"calendarType": "complex"
}
},
"xAxis": 'dt',
"yAxis": 'measures',
"dimensions": [
'dt'
],
},
"view_class": 'filtrovator',
"title": '',
}

Управляющий дэш с кнопкой подтверждения действия

Управляющий дэш может работать в двух режимах: фильтрация в режиме реального времени и фильтрация после подтверждения действия (кнопка применения фильтров и отмены). Первый режим работы включен по умолчанию. Чтобы подключить второй вариант работы фильтра, необходимо в блоке options указать опцию ApplyFilterButtons. После указания опции управляющий дэш будет выглядеть следующим образом:

Управляющий дэш в режиме с подтверждением фильтрации

Кнопка “Применить фильтры” становится активной после выбора показателей для фильтрации. Данные будут отфильтрованы только после нажатия на данную кнопку. Для отмены действия нажмите на кнопку “Назад”.

Переключение гранулярности на дэше с использованием управляющего дэша

В случае, если дэш подписан на фильтр типа “Период”, то с использованием управляющего дэша существует возможность переключения гранулярности дэша. Ниже представлен пример дэша “Столбики”, отображаемого данные по датам, и управляющий дэш:

Столбцы и управляющий дэш

Для отображения значений по месяцам необходимо открыть простой календарь для размерности и выбрать необходимый тип периода и подтвердить действие:

Выбор гранулярности

После выбора типа периода дэш будет отображен по выбранной гранулярности:

Указанная гранулярность для столбцов по месяцам

Пример конфигурации управляющего дэша со всеми вышеописанными опциями

Ниже представлен пример реализации управляющего дэша в простым календарем и остальными вышеописанными опциями:

{
"frame": {
"h": 5,
"w": 4,
"x": 7,
"y": 0,
},
"display": {
"headerStyle": {
"color": 'blue',
"textAlign": 'center',
"backgroundColor": 'red',
},
},
"bgColor": 'blue',
"dataSource": {
"koob": 'luxmsbi.public_maxexample',
"style": {
"sex": {
"type": 'radio',
"options": [
"PanelOpened",
"Search"
]
},
"dt":{
"calendarType": "simple",
"granularity": [
'month',
],
"defaultGranularity": 'month',
}
},
"hierarchy": [
'region=>gorod=>address',
],
"xAxis": 'sex;dt',
"yAxis": 'measures',
"dimensions": [
'sex',
'dt'
],
},
"view_class": 'filtrovator',
"title": '',
}

Книга рецептов

Настройка справочника. Сортировка по справочнику

Для корректной работы справочника необходимо создать основную таблицу, содержащую поле primary key, например, сity, а также сам справочник с тем же полем. Типы данных primary key должны совпадать.

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

В поле config указывается следующий JSON:

{
members: {
default: {
sort: [
'title',
],
with: 'worcation_test.workation_dict',
columns: [
'city_id:id',
'city:title',
],
distinct: false,
},
},
possible_aggregations: [],
}
Редактирование конфигурации размерности куба

В данном JSON id и title - это фиксированные алиасы, которые используются для указания первичного ключа и значения, которое будет подставляться вместо него в итоговую таблицу. city_id и city — это поля в справочнике. Опция with указывает путь к справочнику.

Опция sort используется для сортировки в управляющем дэше. Есть возможность сортировать по title, также можно в справочнике создать дополнительное поле, по которому будет выполняться сортировка, но его необходимо указать в массиве columns, например,

members: {
default: {
sort: [
'srt',
],
with: 'worcation_test.workation_dict',
columns: [
'city_id:id',
'city:title',
'srt',
],
distinct: false,
},
},

Опция distinct указывает, нужно ли отображать повторяющиеся значения (true/false).

В кубе основной таблице можно ссылаться более чем на 1 справочник. Для этого нужно выбрать соответствующий столбец.

Если пользователь не создал поле primary key в основной таблице, но хочет отсортировать по полю в справочнике, то можно в справочнике указать поле, которое хотят отсортировать, и поле srt, по которому будет проходить сортировка.

{
members: {
default: {
sort: [
'srt',
],
with: 'workation_test.city_dict',
columns: [
'country:id',
'country:title',
'srt',
],
distinct: false,
},
},
possible_aggregations: [],
}

В данном примере справочник состоит из двух полей: srt и country, где country выполняет роль primary key. В поле city обоих таблицах указываются города.

В результате размерности country в управляющем дэше будут отсортированы в соответствии с полем srt.

Настроенная сортировка по справочнику в управляющем дэше

Настройка дополнительных фильтраций в Управляющем дэше

При использовании конструкции filters() с указанием различных полей, если поля не были перечислены в рамках куба, то они не будут учитываться при выполнении select.

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

Рассматриваемый пример:

Раздел “Кубы” —> Редактирование куба, в котором мы прописываем результат требуемой функции.

Пример в подразделе SQL:

select num, order, val
from (
select 1 num, 'Заказ' order, sum(E.SECONOMY) val
from PARUS.EXEC E
where ${filters()}
union all
select num, order, val
from (
select 2 num, 'Результат' order, sum(E.FACT) val
from PARUS.EXEC E
where ${filters(NDOC_YEAR, SDOC_QUART,SQ_MONTH, DEPART_1, DEPART_2)}
)
)

В результате выполнения такого запроса данные не передаются в filters()
Для решения данной проблемы необходимо перейти в раздел с деменшенами куба, в рамках которого строим select и создаем новую размерность.

Заполняем размерность:

Название - как одно из полей для фильтрации - SDOC_QUART
ID - также SDOC_QUART
SQL выражение - SDOC_QUART

Создание новой размерности

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

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