Нередко при разработке дашбордов возникают ситуации, когда необходимо отфильтровать данные. О некоторых способах мы уже писали ранее, о других снимали видео, о третьих информация есть только в документации. Это статья – сравнительно краткий гайд по всем способам фильтрации данных в дашбордах. И начнем мы с фильтрации в запросах.

SQL-фильтрация

Один из основных способов фильтрации данных – это выполнение запроса на выборку данных с указанием параметра. Очень подробно об этом мы писали в статьях Параметры в запросе и Использование хранимой процедуры. Этот способ является самым надежным, поскольку фильтрация осуществляется при запросе к хранилищу, а генератор отчетов получает уже отфильтрованные данные. Ограничения в этом случае накладываются лишь языком SQL. Главный недостаток этого способа фильтрации в том, что применить его можно только к источнику данных, который поддерживает запросы и параметры.

SQL filter

Преобразование данных

Данные можно обработать в словаре после их получения, а затем на основе обработанных данных – создать отчет или дашборд. Для обработки данных в словаре предназначен инструмент - Преобразование данных (Data Transformation). Подробнее с преобразованием можно ознакомиться в соответствующем разделе документации. Отметим также, что инструмент Преобразование данных позволяет объединять таблицы данных, сортировать, фильтровать, группировать данные и другое.

Data Transformation

Преобразование данных элемента дашборда

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

Data Transformation Dashboard

Фильтры элементов дашборда

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

Dashboard Filter

Лучшие значения

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

Фильтры элемента Таблица

Элемент Таблица (Table) предоставляет возможность настроить пользовательские фильтры, которые будут применяться к этому элементу и другим взаимосвязанным элементам при просмотре дашборда. В этом случае фильтры устанавливаются через меню заголовков в элементе Таблица. Обратите внимание!

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

Элементы фильтрации

Доступны разные типы элементов фильтрации, которые могут быть размещены на дашборде – Список (List Box), Поле со списком (Combo Box), Выбор даты (Date Picker), Числовое поле (Number Box), Дерево (Tree View), Поле с деревом (Tree View Box). У каждого из них свое предназначение. Важно понимать, что их действие распространяется на взаимосвязанные элементы. Узнать больше о взаимосвязанности элементов дашборда можно в соответствующем разделе документации.

Фильтры от элементов при просмотре

Некоторые элементы - Таблица (Table), Региональная карта (Region Map), Диаграмма (Chart) предоставляют возможность интерактивной фильтрации, то есть, при просмотре дашборда можно выбрать значение элемента для фильтрации данных во взаимосвязанных элементах. В таблицах это осуществляется в заголовках колонок, в региональных картах – при выделении географического объекта, а в диаграммах – при выделении графического элемента. Ознакомиться подробнее с этим можно в главе о взаимосвязанности элементов дашборда. Отключить возможность для элементов Таблица, Региональная карта, Диаграмма можно в меню Взаимодействие (Interaction) элемента.

Переменные отчета

Так исторически сложилось, что переменные были до появления дашбордов в продуктах Stimulsoft. Область видимости этих переменных – текущий отчет. Поэтому справедливо говорить о них как о переменных отчета, хотя в словаре они называются просто Переменные (Variables). При использовании переменных для фильтрации данных, по сути, существует два подхода - использование переменной без выбора значения пользователем и с возможностью выбора значения пользователем.

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

Тут у внимательного читателя возникает вопрос: а где оно будет применено?

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

Послесловие

Как видите, вариантов фильтрации данных дашборда существует огромное количество. Более того, практически все они могут комбинироваться, а некоторые способны заменять друг друга. Однако, большинство из этих методов работает с уже полученными данными. И, например, в случае, если запрос возвращает миллиард строк, а в дашборде необходима лишь тысяча, то лучшим выходом будет улучшить запрос к хранилищу данных.
Используя этот сайт, вы соглашаетесь на использование файлов Cookie для аналитики и персонализированного контента. Файлы Cookie хранят полезную информацию на вашем компьютере, чтобы помочь нам повысить эффективность и удобство использования. Для получения дополнительной информации, пожалуйста, прочтите Конфиденциальность и Использование Cookie.