Платформа 3V/Отчет/6. Дополнительные действия в отчете/Фильтр выпадающих списков/Фильтр факта показателя по связям
Содержание
Признак включения кубовых форм (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 | Перечень атрибутов, которые нужно пропускать при фильтрации значений по связям |
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) |
---|---|
Балансы сосновые | Сосна |
Балансы еловые | Ель |
Необработанная древесина | Сосна, Ель, Дуб |
И для того, чтобы выпадающий список Сортиментов был отсортирован в зависимости от Вида древесины, который выбран в соответствующем столбце, необходимо выполнить настройку, которая была описана выше.
Выпадающий список Сортиментов без учета фильтра по связям:
Выпадающий список Сортиментов с фильтром по связям:
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 }