Платформа 3V/Отчет/6. Дополнительные действия в отчете/Фильтр выпадающих списков/Фильтр факта показателя по связям: различия между версиями
м (A.neklyudova переименовал страницу Платформа 3V/Отчет/6. Дополнительные действия в отчете/Фильтрация выпадающих списков/Фильтр факта показателя по связям в Платформа 3V/Отчет/6. Дополнительные действия в отчете/Фильтр выпадающих списков/Фильтр факта показателя по связям) |
|||
(не показано 8 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
− | |||
− | |||
== Признак включения кубовых форм (isEditable) == | == Признак включения кубовых форм (isEditable) == | ||
Строка 14: | Строка 12: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | == | + | == Общий признак фильтрации по связям для отчета (enableFilterByLinks) == |
− | ''' | + | '''enableFilterByLinks''' - признак включения фильтрации по связям, который находится в шапке отчета [[Платформа_3V/Отчет/PivotDto/PivotTopHeaderDto|'''PivotTopHeaderDto''']]. |
<syntaxhighlight lang="JSON" line> | <syntaxhighlight lang="JSON" line> | ||
{ | { | ||
"topHeader": { | "topHeader": { | ||
− | " | + | "enableFilterByLinks": true, |
... | ... | ||
} | } | ||
Строка 27: | Строка 25: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | == | + | == Признак фильтрации по связям локально для конкретного факта показателя (filterOptionsByLinks) == |
+ | |||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | "filterOptionsByLinks": { | ||
+ | "enable": false, | ||
+ | "skipAttributes": [...] | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Свойство !! Описание | ||
+ | |- | ||
+ | | enable || Признак включения фильтрации значений по связям | ||
+ | |- | ||
+ | | skipAttributes|| [[Платформа_3V/Справочник/Связи_атрибутов_справочников|'''Перечень атрибутов''']], которые нужно пропускать при фильтрации значений по связям | ||
+ | |} | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">topHeaderItems:[...]</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "indicatorId": 31305, | ||
+ | "isVisible": true, | ||
+ | "dictionaries": [ | ||
+ | ... | ||
+ | ], | ||
+ | "formulas": [], | ||
+ | "aggregations": [], | ||
+ | "transformAggregationType": "None", | ||
+ | "hierarchyOptions": null, | ||
+ | "factOptions": [ | ||
+ | { | ||
+ | "FactId": 1, | ||
+ | "FilterOptionsByLinks": { | ||
+ | "enable": false, | ||
+ | "skipAttributes": [ | ||
+ | { | ||
+ | "dictionaryId": 31304, | ||
+ | "attribute": { | ||
+ | "id": 21, | ||
+ | "discriminator": "OwnAttributeDefinitionDto" | ||
+ | } | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | ], | ||
+ | "columnOptions": null, | ||
+ | "discriminator": "IndicatorOptionsDto" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | ==Пример использования== | ||
+ | При необходимости отфильтровать выпадающий список фактов показателя | ||
+ | |||
+ | Кейс: Контрагенты заготавливают разные виды и сортименты древесины, данная информация хранится в соответствующем показателе. Есть два справочника, которые являются фактами этого показателя: "Виды древесины" и "Сортименты" и имеют следующие структуры и связь между ними: | ||
+ | |||
+ | '''Виды древесины''' | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Наименование (id=2) | ||
+ | |- | ||
+ | | Сосна | ||
+ | |- | ||
+ | | Ель | ||
+ | |- | ||
+ | | Дуб | ||
+ | |} | ||
+ | |||
+ | '''Сортименты''' | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Наименование (id=2) !! Вид древесины (id=21) | ||
+ | |- | ||
+ | | Балансы сосновые || Сосна | ||
+ | |- | ||
+ | | Балансы еловые || Ель | ||
+ | |- | ||
+ | | Необработанная древесина || Сосна, Ель, Дуб | ||
+ | |} | ||
+ | |||
+ | И для того, чтобы выпадающий список Сортиментов был отсортирован в зависимости от Вида древесины, который выбран в соответствующем столбце, необходимо выполнить настройку, которая была описана выше. | ||
− | ''' | + | '''Выпадающий список Сортиментов без учета фильтра по связям:''' |
− | + | [[Файл:Отключен фильтр по связям по факту показателя.jpg|600px|безрамки|без]] | |
+ | '''Выпадающий список Сортиментов с фильтром по связям:''' | ||
+ | [[Файл:Фильтр по связям по факту показателя.jpg|600px|безрамки|без]] | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON отчета</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"> | ||
<syntaxhighlight lang="JSON" line> | <syntaxhighlight lang="JSON" line> | ||
{ | { | ||
− | "topHeader": { | + | "workflowId": null, |
+ | "leftHeader": { | ||
+ | "useLazyDataLoadingStrategy": false, | ||
+ | "dictionaries": [ | ||
+ | { | ||
+ | "showDataIfAbsentFilter": null, | ||
+ | "coordAttribute": null, | ||
+ | "cartesianOptions": "Default", | ||
+ | "canSelectAttribute": null, | ||
+ | "groupingOptions": null, | ||
+ | "groupingMethod": "Default", | ||
+ | "sortingOptions": null, | ||
+ | "rootElement": null, | ||
+ | "virtualElements": null, | ||
+ | "displayValueOptions": null, | ||
+ | "displayAttribute": null, | ||
+ | "dictionaryId": 128, | ||
+ | "filter": { | ||
+ | "value": null, | ||
+ | "skipIfValueNull": false, | ||
+ | "attributeId": null, | ||
+ | "attribute": { | ||
+ | "id": 1, | ||
+ | "discriminator": "OwnAttributeDefinitionDto" | ||
+ | }, | ||
+ | "conditionType": "AllElements", | ||
+ | "inversion": false, | ||
+ | "discriminator": "ValueConditionalDictionaryFilterDto" | ||
+ | }, | ||
+ | "selection": null, | ||
+ | "hierarchyId": null, | ||
+ | "limit": null | ||
+ | } | ||
+ | ], | ||
+ | "dictionaryAttributesLinks": [], | ||
+ | "specialFilters": { | ||
+ | "filtersByDataOptions": { | ||
+ | "filtersByData": [], | ||
+ | "needRestoreFullHierachy": false, | ||
+ | "joinOption": "Or", | ||
+ | "restoreElements": null | ||
+ | }, | ||
+ | "dictionaryAttributesLinks": [], | ||
+ | "needRestoreFullHierachy": false, | ||
+ | "restoreElements": null | ||
+ | }, | ||
+ | "isEditable": false | ||
+ | }, | ||
+ | "topHeader": { | ||
"topHeaderItems": [ | "topHeaderItems": [ | ||
{ | { | ||
"dictionaryAttributes": [ | "dictionaryAttributes": [ | ||
{ | { | ||
− | "skippedFilterAttributesByLink": [ | + | "dictionaryId": 128, |
− | { | + | "attribute": { |
− | "dictionaryId": | + | "id": 2, |
− | + | "discriminator": "OwnAttributeDefinitionDto" | |
− | + | }, | |
− | + | "filter": null, | |
+ | "sortingOptions": null, | ||
+ | "attributeId": null, | ||
+ | "displayAttributeType": "AttributeName", | ||
+ | "displayAttributeName": null, | ||
+ | "addFirstElementValue": false, | ||
+ | "overwriteNotFirstElementValues": true, | ||
+ | "delimiter": ", ", | ||
+ | "hideAttributeNameInHeader": false, | ||
+ | "headerNameDelimiter": " / ", | ||
+ | "duplicateValuesForNextDictionaries": true, | ||
+ | "duplicateValuesForNextRows": true, | ||
+ | "displayValueOptions": null, | ||
+ | "linkedAttributeSettings": null, | ||
+ | "skippedFilterAttributesByLink": [], | ||
+ | "filterOptionsByLinks": null | ||
+ | } | ||
+ | ], | ||
+ | "settings": null, | ||
+ | "hyperlinkOptions": null, | ||
+ | "hasImage": false, | ||
+ | "columnOptions": null, | ||
+ | "discriminator": "AttributeHeaderItemDto" | ||
+ | }, | ||
+ | { | ||
+ | "indicatorId": 127, | ||
+ | "isVisible": true, | ||
+ | "dictionaries": [ | ||
+ | { | ||
+ | "isVisible": null, | ||
+ | "displayAttributeId": null, | ||
+ | "elementCustomNames": [], | ||
+ | "groupingOptions": null, | ||
+ | "groupingMethod": "Default", | ||
+ | "sortingOptions": null, | ||
+ | "rootElement": null, | ||
+ | "virtualElements": null, | ||
+ | "displayValueOptions": null, | ||
+ | "displayAttribute": null, | ||
+ | "dictionaryId": 126, | ||
+ | "filter": { | ||
+ | "value": null, | ||
+ | "skipIfValueNull": false, | ||
+ | "attributeId": null, | ||
+ | "attribute": { | ||
+ | "id": 1, | ||
+ | "discriminator": "OwnAttributeDefinitionDto" | ||
+ | }, | ||
+ | "conditionType": "AllElements", | ||
+ | "inversion": false, | ||
+ | "discriminator": "ValueConditionalDictionaryFilterDto" | ||
+ | }, | ||
+ | "selection": null, | ||
+ | "hierarchyId": null, | ||
+ | "limit": null | ||
+ | } | ||
+ | ], | ||
+ | "formulas": [], | ||
+ | "aggregations": [], | ||
+ | "transformAggregationType": "None", | ||
+ | "hierarchyOptions": null, | ||
+ | "factOptions": [ | ||
+ | { | ||
+ | "factId": 1, | ||
+ | "columnOptions": null, | ||
+ | "filterOptionsByLinks": { | ||
+ | "enable": false, | ||
+ | "skipAttributes": [ | ||
+ | { | ||
+ | "dictionaryId": 125, | ||
+ | "attribute": { | ||
+ | "id": 1, | ||
+ | "discriminator": "OwnAttributeDefinitionDto" | ||
+ | } | ||
} | } | ||
− | + | ] | |
− | + | } | |
− | |||
} | } | ||
], | ], | ||
− | "discriminator": " | + | "columnOptions": null, |
+ | "discriminator": "IndicatorOptionsDto" | ||
} | } | ||
], | ], | ||
− | "needFilterAttributesByLinks": true | + | "needFilterAttributesByLinks": false, |
− | } | + | "enableFilterByLinks": true, |
+ | "numerationSettings": null, | ||
+ | "filterOptions": null | ||
+ | }, | ||
+ | "parameters": [], | ||
+ | "styles": [], | ||
+ | "styleOptions": [], | ||
+ | "stylesTemplate": [], | ||
+ | "filtersByDataOptions": null, | ||
+ | "view": null, | ||
+ | "externalExecutions": null, | ||
+ | "settings": null, | ||
+ | "code": "P_FILTER_FACT_IND", | ||
+ | "id": 129, | ||
+ | "name": "Фильтр фактов показателя" | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | </div></div> | |
− | |||
− | |||
− |
Текущая версия на 10:08, 1 июля 2021
Содержание
Признак включения кубовых форм (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 }