Виджеты в AW BI: Расчетные агрегаты против встроенных функций

Введение

Данная статья направлена на описание особенностей реализации расчетов в виджетах AW BI. Она описывает два основных подхода к выполнению расчетов:

  • Использование готовых функций, предоставляемых системой для полей моделей, что упрощает процесс разработки, но ограничивает возможности.
  • Применение расчетных агрегатов, позволяющих создавать произвольные расчеты, используя агрегатные функции, условия и ранее рассчитанные расчетные агрегаты.
Создание демо-виджета. 1 часть. Описание модели

Во время изучения данной статьи создадим виджет - таблицу с динамикой региональной выручки по полугодиям для компании с данными по месяцам с января по сентябрь 2025 года.

Описание модели данных:

Модель состоит из столбцов 3 столбцов:

  1. Месяц ([mesac]),
  2. Регион ([region]),
  3. Выручка ([vyrucka]).

Преобразование расчетов через поля моделей

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

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

  1. Количество
  2. Количество уникальных
  3. Минимум
  4. Максимум
  5. Среднее
  6. Сумма

При работе с полями типа Строка выбор встроенных функций будет ограничен до “Количество” и “Количество уникальных”.

image

Также, есть возможность отключить расчет по итоговому и\или промежуточного значения, выбрав Нет в списке доступных функций, или выбрать Формула в списке и написать код формулы.

Особенности реализации расчетов через поля модели

  • Не нужно писать код
  • Отсутствует возможность выбрать тип, формат и единицу измерения
  • Расчеты с полей модели невозможно использовать для расчета других параметров

1 и 3 особенности относятся только к той реализации расчетов, где не был выбран пункт “Формула”.

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

Создание демо-виджета. 2 часть. Вычисление метрики через поле модели

Продолжим создание виджета.

Для агрегации выберем в Группу поле Регион. Поле Выручка перенесем на окно агрегатов. Выберем функции SUM для итогового и промежуточного значений. Переименуем поле в “Общая выручка”.

Особенности реализации расчетов через поля модели с использованием самописных функций

Данные особенности относятся только к той реализации расчетов, где был выбран пункт “Формула”.

  • Возможно использовать все доступные функции
  • Можно писать разнообразные формулы расчета, которые будут включать IF, оконные функции и др. условия
  • Возможно выбрать тип, формат и единицу измерения для расчета
  • Расчеты с полей модели невозможно использовать для расчета других параметров

Таким образом, при создании виджета, где используются только поля модели и для расчетов выбран пункт Формула, пользователь ограничен в расчетах только по количеству полей модели, где количество агрегатов будет равно количеству полей.

Работа с расчетными агрегатами

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

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

Создание демо-виджета. 3 часть. Создание расчетных агрегатов

Вернёмся к созданию виджета.

Создадим 3 расчетных агрегата.

  1. Выручка I полугодие ([v_1])
    Формула: SUM_IF([vyrucka], [mesac] in (‘Январь’, ‘Февраль’, ‘Март’, ‘Апрель’, ‘Май’, ‘Июнь’))
  2. Выручка II полугодие ([v_2])
    Формула: SUM_IF([vyrucka], [mesac] not in (‘Январь’, ‘Февраль’, ‘Март’, ‘Апрель’, ‘Май’, ‘Июнь’))
  3. Разница полугодий
    Формула: [v_2]-[v_1]
    Обратите внимание, в разнице полугодий используются два расчетных агрегата.

Для всех расчетных агрегатов и каждого из значений (и итоговый, и промежуточный показатели) установим настройку:
image
image

В данном случае, нам не нужно изменять формат числа, т.к. данные в модели уже подсчитаны до миллионов рублей.

Особенности реализации расчетов, используя расчетные агрегаты

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

Итоги

Создание демо-виджета. 4 часть. Заключительная

Добавим три созданных расчетных агрегата из 3 части в виджет.

Как итог, мы получили таблицу с динамикой региональной выручки по полугодиям, по которой можно сделать выводы, например, сколько какому региону нужно сделать выручки во втором полугодии, чтобы не уступить первому полугодию.

Реализованный пример для этой статьи можно найти по ссылке.

Реализация вычислений в виджетах AW BI достаточно многообразна:

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

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