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

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Строка 24: Строка 24:
 
         "joinOption": "Or",
 
         "joinOption": "Or",
 
         "restoreElements": null
 
         "restoreElements": null
       }
+
       },
       ...
+
       "dictionaryAttributesLinks": [],
 +
      "needRestoreFullHierachy": false,
 +
      "restoreElements": []
 
     },
 
     },
 
     ...
 
     ...
Строка 38: Строка 40:
 
'''needRestoreFullHierachy''' - ???<br>
 
'''needRestoreFullHierachy''' - ???<br>
 
'''joinOption''' - если в ''filtersByData'' перечислено несколько показателей, то при значении ''or'' будут отображаться строки, в которых факты заполнены хотя бы в одном показателе, а при значении ''and'' - во всех перечисленных показателях. <br>
 
'''joinOption''' - если в ''filtersByData'' перечислено несколько показателей, то при значении ''or'' будут отображаться строки, в которых факты заполнены хотя бы в одном показателе, а при значении ''and'' - во всех перечисленных показателях. <br>
'''restoreElements''' - ???<br>
+
'''filtersByDataOptions'''.'''restoreElements''' - ???<br>
 +
'''dictionaryAttributesLinks''' - ???<br>
 +
'''needRestoreFullHierachy''' - ???<br>
 +
'''specialFilters'''.'''restoreElements''' - элементы справочников, которых необходимо отобразить принудительно, игнорируя фильтры. <br>
 
<br>
 
<br>
 
В фильтре можно указать как все факты, так и один. В случае с несколькими фактами будут отображаться строки, в которых заполнен хотя бы один факт.
 
В фильтре можно указать как все факты, так и один. В случае с несколькими фактами будут отображаться строки, в которых заполнен хотя бы один факт.

Версия 08:42, 10 марта 2021

Описание

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

 1 {
 2   ...
 3   "leftHeader": {
 4     "specialFilters": {
 5       "filtersByDataOptions": {
 6         "filtersByData": [
 7           {
 8             "indicatorId": 123,
 9             "filterOptions": [],
10             "dataCondition": null
11           },
12           {
13             "indicatorId": 456,
14             "filterOptions": [],
15             "dataCondition": null
16           }
17         ...
18         ],
19         "needRestoreFullHierachy": true,
20         "joinOption": "Or",
21         "restoreElements": null
22       },
23       "dictionaryAttributesLinks": [],
24       "needRestoreFullHierachy": false,
25       "restoreElements": []
26     },
27     ...
28   },
29   ...
30 }

indicatorId - идентификатор показателя.
filterOptions - справочники измерений, которые указаны в шапке показателя, и справочник фактов. JSON можно скопировать из блока topHeaderItems - indicatorsSubBlocks - dictionaries.
dataCondition - ???
needRestoreFullHierachy - ???
joinOption - если в filtersByData перечислено несколько показателей, то при значении or будут отображаться строки, в которых факты заполнены хотя бы в одном показателе, а при значении and - во всех перечисленных показателях.
filtersByDataOptions.restoreElements - ???
dictionaryAttributesLinks - ???
needRestoreFullHierachy - ???
specialFilters.restoreElements - элементы справочников, которых необходимо отобразить принудительно, игнорируя фильтры.

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

Пример

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

Отчет, построенный на показателе.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