Кнопка-переключатель для выбора периода

Снимок экрана 2025-06-20 в 13.40.07

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

Алгоритм создания виджета:

  1. Создаем виджет, выбираем вид “Тренд”.
  2. Добавьте поле, которое будет иметь одно и то же значение для всех строк в модели, в область группировок. Это позволит отобразить одну строку в табличном представлении виджета.
  3. Создайте редактируемую переменную «Период» (period) с типом отображения «Переключатель». Задайте три значения: “Год”, “Месяц” и “Неделя”. Установите значение по умолчанию на “Год”. Эта переменная даст пользователю возможность динамически изменять период анализа на дашборде.
  4. Добавляем расчётный агрегат, значение которого зависит от переменной, созданной на предыдущем шаге. Формула агрегата может выглядеть следующим образом:
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()) - позволяют получить год, месяц и номер недели из текущей даты.

  1. Настраиваем внешний вид виджета на вкладке «Вид».

В нашей free-версии системы можно посмотреть пример.