Начиная с версии 2025.2 в продуктах Stimulsoft для создания дашбордов появилось свойство InclusionMode, о работе с которым мы расскажем в этой статье.

Введение

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

Возможный сценарий работы с данными в дашборде

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

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

С фильтром (например, категории) в запрос к таблице добавляется условие, связанное с колонкой категории.

Проблема: если выбрать опцию "Все" в фильтре, строка с агрегированными данными исчезает, что не является корректным поведением. Важно!

Дело в том, что существует несколько возможностей объединения таблиц, и при выборе опции "Все" реализуется механизм FULL JOIN. Подробнее об особенностях объединения таблиц и свойстве JoinType вы можете прочитать в этой статье.
Свойство InclusionMode решает эту проблему, предоставляя два режима работы фильтров.

Режимы работы фильтров

Разберём работы каждого режима:

По умолчанию (Selection Only):
Фильтр активируется только при выборе конкретной категории.
Если выбрать “Все”, фильтр не добавляется в запрос → строка с агрегированными данными исчезает.

Always (Всегда):
Фильтр добавляется в запрос всегда, даже при выборе опции “Все”.
В данном случае, строка с агрегированными данными сохраняется, так как условие фильтра (например, WHERE CategoryID IS NULL) остаётся в запросе.
Таким образом, значение Always используется, если нужно сохранять агрегированные данные (например, суммы) даже при выборе “Все”, а значение Selection Only – если фильтр должен применяться только при явном выборе (например, для оптимизации запросов).

Преимущества использования свойства InclusionMode

- Контроль над агрегированными данными
Свойство устраняет «прыгающие» строки при использовании фильтров с опцией “Все”.

- Предсказуемость
Режим Always гарантирует, что фильтр будет влиять на запрос, даже при выборе опции “Все”.

- Совместимость
Режим Selection Only сохраняет поведение, знакомое пользователям более старых версий.

Итог

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