Платформа 3V/Отчет/6. Дополнительные действия в отчете/Фильтр выпадающих списков/Фильтр факта показателя по связям

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

Признак включения кубовых форм (isEditable)

isEditable - Признак возможности добавления строк в отчет на основании существующих элементов измерений.

1 {
2   "leftHeader": {
3     "isEditable": true,
4      ...
5   }
6 }

Общий признак фильтрации по связям для отчета (enableFilterByLinks)

enableFilterByLinks - признак включения фильтрации по связям, который находится в шапке отчета PivotTopHeaderDto.

1 {
2   "topHeader": {
3     "enableFilterByLinks": true,
4      ...
5   }
6 }

Признак фильтрации по связям локально для конкретного факта показателя (filterOptionsByLinks)

1 "filterOptionsByLinks": {
2               "enable": false,
3               "skipAttributes": [...]
4             }
Свойство Описание
enable Признак включения фильтрации значений по связям
skipAttributes Перечень атрибутов, которые нужно пропускать при фильтрации значений по связям
topHeaderItems:[...]
 1 {
 2         "indicatorId": 31305,
 3         "isVisible": true,
 4         "dictionaries": [
 5          ...
 6         ],
 7         "formulas": [],
 8         "aggregations": [],
 9         "transformAggregationType": "None",
10         "hierarchyOptions": null,
11         "factOptions": [
12           {
13             "FactId": 1,
14             "FilterOptionsByLinks": {
15               "enable": false,
16               "skipAttributes": [
17                 {
18                   "dictionaryId": 31304,
19                   "attribute": {
20                     "id": 21,
21                     "discriminator": "OwnAttributeDefinitionDto"
22                   }
23                 }
24               ]
25           }
26         ],
27         "columnOptions": null,
28         "discriminator": "IndicatorOptionsDto"
29       }

Пример использования

При необходимости отфильтровать выпадающий список фактов показателя

Кейс: Контрагенты заготавливают разные виды и сортименты древесины, данная информация хранится в соответствующем показателе. Есть два справочника, которые являются фактами этого показателя: "Виды древесины" и "Сортименты" и имеют следующие структуры и связь между ними:

Виды древесины

Наименование (id=2)
Сосна
Ель
Дуб

Сортименты

Наименование (id=2) Вид древесины (id=21)
Балансы сосновые Сосна
Балансы еловые Ель
Необработанная древесина Сосна, Ель, Дуб

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

Выпадающий список Сортиментов без учета фильтра по связям:

Отключен фильтр по связям по факту показателя.jpg

Выпадающий список Сортиментов с фильтром по связям:

Фильтр по связям по факту показателя.jpg
JSON отчета
  1 {
  2   "workflowId": null,
  3   "leftHeader": {
  4     "useLazyDataLoadingStrategy": false,
  5     "dictionaries": [
  6       {
  7         "showDataIfAbsentFilter": null,
  8         "coordAttribute": null,
  9         "cartesianOptions": "Default",
 10         "canSelectAttribute": null,
 11         "groupingOptions": null,
 12         "groupingMethod": "Default",
 13         "sortingOptions": null,
 14         "rootElement": null,
 15         "virtualElements": null,
 16         "displayValueOptions": null,
 17         "displayAttribute": null,
 18         "dictionaryId": 128,
 19         "filter": {
 20           "value": null,
 21           "skipIfValueNull": false,
 22           "attributeId": null,
 23           "attribute": {
 24             "id": 1,
 25             "discriminator": "OwnAttributeDefinitionDto"
 26           },
 27           "conditionType": "AllElements",
 28           "inversion": false,
 29           "discriminator": "ValueConditionalDictionaryFilterDto"
 30         },
 31         "selection": null,
 32         "hierarchyId": null,
 33         "limit": null
 34       }
 35     ],
 36     "dictionaryAttributesLinks": [],
 37     "specialFilters": {
 38       "filtersByDataOptions": {
 39         "filtersByData": [],
 40         "needRestoreFullHierachy": false,
 41         "joinOption": "Or",
 42         "restoreElements": null
 43       },
 44       "dictionaryAttributesLinks": [],
 45       "needRestoreFullHierachy": false,
 46       "restoreElements": null
 47     },
 48     "isEditable": false
 49   },
 50   "topHeader": {
 51     "topHeaderItems": [
 52       {
 53         "dictionaryAttributes": [
 54           {
 55             "dictionaryId": 128,
 56             "attribute": {
 57               "id": 2,
 58               "discriminator": "OwnAttributeDefinitionDto"
 59             },
 60             "filter": null,
 61             "sortingOptions": null,
 62             "attributeId": null,
 63             "displayAttributeType": "AttributeName",
 64             "displayAttributeName": null,
 65             "addFirstElementValue": false,
 66             "overwriteNotFirstElementValues": true,
 67             "delimiter": ", ",
 68             "hideAttributeNameInHeader": false,
 69             "headerNameDelimiter": " / ",
 70             "duplicateValuesForNextDictionaries": true,
 71             "duplicateValuesForNextRows": true,
 72             "displayValueOptions": null,
 73             "linkedAttributeSettings": null,
 74             "skippedFilterAttributesByLink": [],
 75             "filterOptionsByLinks": null
 76           }
 77         ],
 78         "settings": null,
 79         "hyperlinkOptions": null,
 80         "hasImage": false,
 81         "columnOptions": null,
 82         "discriminator": "AttributeHeaderItemDto"
 83       },
 84       {
 85         "indicatorId": 127,
 86         "isVisible": true,
 87         "dictionaries": [
 88           {
 89             "isVisible": null,
 90             "displayAttributeId": null,
 91             "elementCustomNames": [],
 92             "groupingOptions": null,
 93             "groupingMethod": "Default",
 94             "sortingOptions": null,
 95             "rootElement": null,
 96             "virtualElements": null,
 97             "displayValueOptions": null,
 98             "displayAttribute": null,
 99             "dictionaryId": 126,
100             "filter": {
101               "value": null,
102               "skipIfValueNull": false,
103               "attributeId": null,
104               "attribute": {
105                 "id": 1,
106                 "discriminator": "OwnAttributeDefinitionDto"
107               },
108               "conditionType": "AllElements",
109               "inversion": false,
110               "discriminator": "ValueConditionalDictionaryFilterDto"
111             },
112             "selection": null,
113             "hierarchyId": null,
114             "limit": null
115           }
116         ],
117         "formulas": [],
118         "aggregations": [],
119         "transformAggregationType": "None",
120         "hierarchyOptions": null,
121         "factOptions": [
122           {
123             "factId": 1,
124             "columnOptions": null,
125             "filterOptionsByLinks": {
126               "enable": false,
127               "skipAttributes": [
128                 {
129                   "dictionaryId": 125,
130                   "attribute": {
131                     "id": 1,
132                     "discriminator": "OwnAttributeDefinitionDto"
133                   }
134                 }
135               ]
136             }
137           }
138         ],
139         "columnOptions": null,
140         "discriminator": "IndicatorOptionsDto"
141       }
142     ],
143     "needFilterAttributesByLinks": false,
144     "enableFilterByLinks": true,
145     "numerationSettings": null,
146     "filterOptions": null
147   },
148   "parameters": [],
149   "styles": [],
150   "styleOptions": [],
151   "stylesTemplate": [],
152   "filtersByDataOptions": null,
153   "view": null,
154   "externalExecutions": null,
155   "settings": null,
156   "code": "P_FILTER_FACT_IND",
157   "id": 129,
158   "name": "Фильтр фактов показателя"
159 }