Платформа 3V/Отчет/5. Настроить представление, оформление отчета/Настроить фильтр по данным/Настроить фильтр по данным для строк: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Строка 10: Строка 10:
 
         "filtersByData": [
 
         "filtersByData": [
 
           {
 
           {
             "indicatorId": ...,
+
             "indicatorId": 123,
 
             "filterOptions": []
 
             "filterOptions": []
 
           }
 
           }

Версия 10:02, 3 марта 2021

Описание

Для того, чтобы отобразить только те строки с измерениями, в которых заполнены факты, необходимо воспользоваться настройкой filtersByData:

 1 {
 2   ...
 3   "leftHeader": {
 4     "specialFilters": {
 5       "filtersByDataOptions": {
 6         "filtersByData": [
 7           {
 8             "indicatorId": 123,
 9             "filterOptions": []
10           }
11         ...
12         ]
13         ...
14       }
15       ...
16     },
17     ...
18   },
19   ...
20 }

indicatorId - идентификатор показателя.
filterOptions - справочники измерений, которые указаны в шапке показателя, и справочник фактов. JSON можно скопировать из блока topHeaderItems - indicatorsSubBlocks - dictionaries.

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

Пример

Имеется следующий отчет:

Отчет, построенный на показателе.png









Структура показателя в отчете:

Справочник Идентификатор Описание
Контрагенты 12094 Измерение, выводится в строках
Продукты 12096 Измерение, выводится в строках
Календарь(месяцы) 12097 Измерение, выводится в столбцах (шапке)
Магазины 12095 Измерение, выводится в столбцах (шапке)
Факты 12098 Факты (Количество и Стоимость)

Необходимо вывести только те строки, в которых заполнены данные по количеству и стоимости купленных товаров в каком-либо из магазинов в любом месяце. Для этого указываем в блоке filtersByData идентификатор показателя (12099) и копируем из блока topHeaderItems - indicatorsSubBlocks - dictionaries часть со справочником фактов (12098) и справочниками, указанными в шапке (12097, 12095). Пример JSON указан ниже.

JSON
  1 "filtersByData": [
  2           {
  3             "indicatorId": 12099,
  4             "filterOptions": [
  5               {
  6                 "isVisible": true,
  7                 "displayAttributeId": null,
  8                 "elementCustomNames": [],
  9                 "groupingOptions": null,
 10                 "groupingMethod": "Default",
 11                 "sortingOptions": null,
 12                 "rootElement": null,
 13                 "virtualElements": [],
 14                 "displayValueOptions": null,
 15                 "displayAttribute": null,
 16                 "dictionaryId": 12097,
 17                 "filter": {
 18                   "parameterFilterOptions": null,
 19                   "value": {
 20                     "id": 12097,
 21                     "name": ""
 22                   },
 23                   "skipIfValueNull": true,
 24                   "attributeId": 1,
 25                   "attribute": {
 26                     "id": 1,
 27                     "discriminator": "OwnAttributeDefinitionDto"
 28                   },
 29                   "conditionType": "AttributeInCollection",
 30                   "inversion": false,
 31                   "discriminator": "ParameterConditionalDictionaryFilterDto"
 32                 },
 33                 "selection": null,
 34                 "hierarchyId": null,
 35                 "limit": null
 36               },
 37               {
 38                 "isVisible": true,
 39                 "displayAttributeId": null,
 40                 "elementCustomNames": [],
 41                 "groupingOptions": null,
 42                 "groupingMethod": "Default",
 43                 "sortingOptions": null,
 44                 "rootElement": null,
 45                 "virtualElements": [],
 46                 "displayValueOptions": null,
 47                 "displayAttribute": null,
 48                 "dictionaryId": 12098,
 49                 "filter": {
 50                   "value": [
 51                     1,
 52                     2
 53                   ],
 54                   "skipIfValueNull": false,
 55                   "attributeId": null,
 56                   "attribute": {
 57                     "id": 1,
 58                     "discriminator": "OwnAttributeDefinitionDto"
 59                   },
 60                   "conditionType": "AttributeInCollection",
 61                   "inversion": false,
 62                   "discriminator": "ValueConditionalDictionaryFilterDto"
 63                 },
 64                 "selection": null,
 65                 "hierarchyId": null,
 66                 "limit": null
 67               },
 68               {
 69                 "isVisible": null,
 70                 "displayAttributeId": null,
 71                 "elementCustomNames": [],
 72                 "groupingOptions": null,
 73                 "groupingMethod": "Default",
 74                 "sortingOptions": null,
 75                 "rootElement": null,
 76                 "virtualElements": null,
 77                 "displayValueOptions": null,
 78                 "displayAttribute": null,
 79                 "dictionaryId": 12095,
 80                 "filter": {
 81                   "parameterFilterOptions": {
 82                     "attribute": {
 83                       "id": 1,
 84                       "discriminator": "OwnAttributeDefinitionDto"
 85                     }
 86                   },
 87                   "value": {
 88                     "id": 12095,
 89                     "name": null
 90                   },
 91                   "skipIfValueNull": false,
 92                   "attributeId": null,
 93                   "attribute": {
 94                     "id": 1,
 95                     "discriminator": "OwnAttributeDefinitionDto"
 96                   },
 97                   "conditionType": "AttributeInCollection",
 98                   "inversion": false,
 99                   "discriminator": "ParameterConditionalDictionaryFilterDto"
100                 },
101                 "selection": null,
102                 "hierarchyId": null,
103                 "limit": null
104               }
105             ],
106             "dataCondition": null
107           }
108         ]

В результате получаем нужный отчет:

Отчет с заполненными фактами.png