В этой статье мы рассмотрим, как улучшить функциональность виджета с метриками компании, позволяя пользователям самостоятельно выбирать период анализа. В качестве примера будет использоваться виджет-тренд, отображающий показатели продаж, с кнопкой-переключателем для выбора периода: текущий год, текущий месяц или текущая неделя.
Алгоритм создания виджета:
- Создаем виджет, выбираем вид “Тренд”.
- Добавьте поле, которое будет иметь одно и то же значение для всех строк в модели, в область группировок. Это позволит отобразить одну строку в табличном представлении виджета.
- Создайте редактируемую переменную «Период» (period) с типом отображения «Переключатель». Задайте три значения: “Год”, “Месяц” и “Неделя”. Установите значение по умолчанию на “Год”. Эта переменная даст пользователю возможность динамически изменять период анализа на дашборде.
- Добавляем расчётный агрегат, значение которого зависит от переменной, созданной на предыдущем шаге. Формула агрегата может выглядеть следующим образом:
IF [period] = 'Год' THEN SUM_IF([value], [year] = YEAR(NOW()))
ELSEIF [period] = 'Месяц' THEN SUM_IF([value], [year] = YEAR(NOW()) AND [month] = MONTH(NOW()))
ELSE SUM_IF([value], [year] = YEAR(NOW()) AND [week] = WEEK(NOW()))
END
В этом выражении:
[period]
– редактируемая переменная.
[year], [month] и [week]
- поля в модели, содержащие номер года, номер месяца и номер недели соответственно. Если таких полей нет, их можно создать с помощью функционала иерархий в датах.
[value]
— поле в модели, содержащее данные о продажах.
Функции YEAR(NOW()), MONTH(NOW()) и WEEK(NOW())
- позволяют получить год, месяц и номер недели из текущей даты.
- Настраиваем внешний вид виджета на вкладке «Вид».
В нашей free-версии системы можно посмотреть пример.