Calculation Group
September 13, 2021

Порядок взаимодействия Calculation group

Использование Calculation group(#CG) помогает упростить управление отчётом, сокращая количество создаваемых мер. Не так давно я разбирал тему "Переключение/включение мер в визуализации". Другой наиболее распространенный сценарий - это переключение сравниваемого периода.

Например:

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

Чтобы решить поставленную задачу с помощью #TabularEditor создадим две #CG.

Первая #CG будет отвечать за переключение(выбор) показателя:

Calculation item - Сумма заказов

Чтобы создать #CG, необходимо нажать правой клавишей мыши по папке Tables или нажать горячие клавиши ALT+7. Calculation items создаются только из контекстного меню соответствующей #CG.

Вторая #CG будет использоваться для переключения сравниваемого периода:

Calculation item - Предыдущий месяц

И, если в первой #CG - !ChangeMeasure в каждом item мы ссылаемся на конкретную меру, то во второй #CG - !PrevPeriod мы будем использовать специальную функцию SELECTEDMEASURE(), которая возвращает выбранную меру.

И вот здесь как раз будет важен порядок применения #CG. Порядок применения задаётся в свойствах каждой #CG в поле Calculation Group Precedence:

Присваиваем порядок применения Calculation group
По умолчанию значение параметра Calculation Group Precedence равно 0, если же вы уже задали порядок, то все последующие #CG будут иметь порядковый номер +1 и применяться позже, если не переопределить порядок заново.

После создания #CG вернёмся в отчёт и создадим визуальный элемент Матрица. В строки поместим поле Год-месяц из Календаря, в столбцы поле Name из таблицы "!ChangeMeasure", а в значения меру "Сумма заказов":

Матрица выбранного периода

Затем создадим дубликат этой таблицы - в неё с помощью #CG будем выводить значения предыдущего периода:

Пока что две идентичные таблицы

Для переключения показателя и выбора периода создадим два среза с единичным выбором:

Срезы для переключения рассчётов

Для того, чтобы в первой матрице у нас оставался выбранный период, а значит не влиял срез "Сравнение с периодом", изменим взаимодействие:

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

Всё, ниже можно посмотреть на итоговый результат и попереключать срезы

Также про порядок использования #CG можно посмотреть в отличном видео на Youtube-канале bi-tv с Максим Уваров, Максим Зеленский и Даниил Маслюк