Платформа 3V/Отчет/2. Настроить столбцы/2.3. Настроить виртуальный показатель

Материал из 3v-wiki
Перейти к навигации Перейти к поиску

Описание

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

Добавить виртуальный показатель можно:
1. Через конструктор отчета:

Виртуальный показатель.png











2. Прописать конструкцию в json отчета как элемент коллекции "topHeaderItems": [].

Пример JSON виртуального показателя

Настройка формулы виртуального показателя

Для виртуального показателя можно настроить следующие варианты расчета данных:

  • Настройка агрегации по столбцам и по строкам таблицы

Агрегацию можно настроить через конструктор отчета, выбрав функцию агрегации по строкам/столбцам:

Виртуальный показатель агрегация.png











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

Пример JSON агрегации в виртуальном показателе


  • Настройка расчетной формулы

Все формулы для виртуального показателя прописываются в json, в свойстве "formulas": []. Формулу можно добавить через интерфейс, либо прописать в json. Подробнее по ссылкам ниже. Описание настройки формул в платформе
Пример настройки формулы для виртуального показателя

Пример расчетной формулы для виртуального показателя

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

 1 {
 2             "indicatorId": -6183,
 3             "dictionaries": [],
 4             "calculateByDiffs": false,
 5             "leftHeaderPlacementKind": "AnyElement",
 6             "expression": "[1]/3600",
 7             "operands": [
 8               {
 9                 "dictionaryId": 12,
10                 "attribute": {
11                   "id": 25,
12                   "discriminator": "OwnAttributeDefinitionDto"
13                 },
14                 "code": null,
15                 "id": 1,
16                 "name": null,
17                 "discriminator": "AttributeFormulaOperandDto"
18               }
19             ],
20             "code": null,
21             "id": 1,
22             "name": null,
23             "discriminator": "IndicatorFormulaDto"
24           }

Где:
indicatorId - идентификатор виртуального показателя
expression - формула
dictionaryId - идентификатор справочника
attribute.id - идентификатор атрибута в справочнике
operands.id - идентификатор операнда, используемого в формуле
formulas.id - идентификатор формулы

Результат:

Расчетный столбец по атрибуту справочника.png