Настройка отображения только группировочных элементов по строкам (ранее - Трансформации)

Материал из 3v-wiki
< Платформа 3V‎ | Отчет‎ | 1. Настроить строки‎ | 1.4. Дополнительные настройки
Версия от 08:20, 13 октября 2021; Il.iashin (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску


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

Для трансформации достаточно выбрать метод группировки GroupingMethod при описании справочника боковика.

 1 {
 2   ...
 3   "leftHeader": {
 4     "dictionaries": [
 5       {
 6         ...
 7         "groupingMethod": "TransformToSeparateDictionaries",
 8         ...
 9       }
10     ],
11     ...
12   }
13   ...
14 }

Временный справочник

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

Виды трансформации

  1. TransformToSeparateDictionaries - обычная трансформация, заменяет справочник боковика на справочники группировочных атрибутов.
  2. TransformToSeparateDictionariesHierarchically - тоже самое только с выстраиванием иерархии.

Агрегация фактов показателя с трансформируемыми измерениями

TransformAggregationType - тип агрегации группируемых значений фактов при трансформации измерений показателя.

TransformAggregationType указывается в элементе шапки IndicatorOptionsDto.

 1 {
 2   ...
 3   "topHeader": {
 4     "topHeaderItems": [
 5      ...
 6       {
 7         ...
 8         "transformAggregationType": "DistinctCount",
 9         ...
10         "discriminator": "IndicatorOptionsDto"
11       }
12     ],
13     ...
14   },
15   ...
16 }
  1. По умолчанию используется тип агрегации "Сумма".
  2. TransformAggregationType может работать совместно с агрегацией указываемой для фактов показателя в IndicatorAggregationOptionsDto и они могут быть различны, т.е. агрегация при трансформации может быть "Сумма", а обычная агрегация по факту "Количество".

Пример

Показатель перед трансформацией

Значение трансформируемого справочника Факт
Статья №1 1
Статья №1 2
Статья №2 3

Показатель после трансформации (Если TransformAggregationType будет равно сумме)

Значение справочника Факт
Статья №1 3
Статья №2 3

Агрегация значений атрибутов трансформируемых справочников

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

TransformAggregationType для атрибутов указывается в настройках AttributeHeaderItemSettingsDto элемента шапки AttributeHeaderItemDto.

 1 {
 2   ...
 3   "topHeader": {
 4     "topHeaderItems": [
 5      ...
 6       {
 7         ...
 8         "settings": {
 9           ...
10           "transformAggregationType": "Sum"
11           ...
12         }
13         ...
14         "discriminator": "AttributeHeaderItemDto"
15       }
16     ],
17     ...
18   },
19   ...
20 }
  1. По умолчанию никакой тип агрегации не используется, поэтому если не задать значение для TransformAggregationType, то атрибут трансформируемого справочника будет убран из шапки пивота.
  2. Если для атрибута будет задан TransformAggregationType, то вместо атрибута будет добавлен виртуальный показатель куда будут записаны агрегаты значений атрибута по указанному типу агрегации.
  3. TransformAggregationType может работать совместно с агрегацией AggregationType указываемой для атрибута в AttributeHeaderItemSettingsDto и они могут быть различны, т.е. агрегация при трансформации может быть "Сумма", а обычная агрегация "Количество".


Пример

Атрибуты справочника перед трансформацией

Значение группировочного атрибута (не связанный) Значение атрибута выведенного в шапку с указанием TransformAggregationType = Sum
Статья №1 1
Статья №1 2
Статья №2 3

Атрибуты справочника после трансформации

Значение атрибута временного справочника Виртуальный показатель с агрегатами атрибута
Статья №1 3
Статья №2 3