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

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
 
Строка 254: Строка 254:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
</div></div>
 
</div></div>
 +
== Пример фильтрации справочника параметра от другого параметра==
 +
Кейс: справочник 16 фильтруется от значений атрибута 24 справочника 19 из соседнего параметра
 +
<syntaxhighlight lang="JSON" line>
 +
    {
 +
      "dictionaryId": 0,
 +
      "options": {
 +
        "groupingMethod": "Default",
 +
        "virtualElements": [],
 +
        "dictionaryId": 16,
 +
        "filter": {
 +
          "type": "And",
 +
          "filters": [
 +
            {
 +
              "parameterFilterOptions": {
 +
                "attribute": {
 +
                  "discriminator": "OwnAttributeDefinitionDto",
 +
                  "id": 24
 +
                }
 +
              },
 +
              "value": {
 +
                "id": 1,
 +
                "name": null
 +
              },
 +
              "skipIfValueNull": false,
 +
              "attributeId": null,
 +
              "attribute": {
 +
                "discriminator": "OwnAttributeDefinitionDto",
 +
                "id": 1
 +
              },
 +
              "conditionType": "AttributeInCollection",
 +
              "discriminator": "ParameterConditionalDictionaryFilterDto",
 +
              "inversion": false
 +
            }
 +
          ],
 +
          "discriminator": "CompoundDictionaryFilterDto",
 +
          "inversion": false
 +
        },
 +
        "hierarchyId": null,
 +
        "limit": null
 +
      },
 +
      "discriminator": "DictionaryParameterDto",
 +
      "defaultValue": [],
 +
      "value": null,
 +
      "isMultiselect": true,
 +
      "isEmptyValuePossible": true,
 +
      "isDisableable": false,
 +
      "isDisabled": false,
 +
      "id": 2,
 +
      "name": "компания"
 +
    }
 +
</syntaxhighlight>

Текущая версия на 08:26, 28 декабря 2021

Фильтр, который в выпадающем списке выберет из справочника элементы, у которых значение указанного атрибута совпадают с значением в параметре отчета.

 1  "filter": {
 2               "parameterFilterOptions": {
 3                 "attribute": {
 4                   "id": 1,
 5                   "discriminator": "OwnAttributeDefinitionDto"
 6                 }
 7               },
 8               "value": {
 9                 "id": 1,
10                 "name": null
11               },
12               "skipIfValueNull": false,
13               "attribute": {
14                 "id": 1,
15                 "discriminator": "OwnAttributeDefinitionDto"
16               },
17               "conditionType": "AttributeInCollection",
18               "inversion": false,
19               "discriminator": "ParameterConditionalDictionaryFilterDto"
20             }

Описание свойств фильтра

Свойство Описание
inversion В значении "false" справочник принимает значения, которые удовлетворяют фильтру, в значении "true" - все значения, которые наоборот не удовлетворяют ему
discriminator ValueConditionalDictionaryFilterDto
parameterFilterOptions Настройка атрибута параметра, при условии что параметр - справочник, по которому происходит фильтрация
value Идентификатор параметра отчета, который используется для фильтрации
skipIfValueNull Признак при котором не учитывается фильтр, если значение параметра пустое
attribute Атрибут справочника, с которым будет сравниваться значение параметра
conditionType Тип условий

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

Кейс: В выпадающем списке "Виды древесины" должны быть представлены элементы, которые выбраны в параметре "Виды древесины" отчета (id параметра = 1), но без фильтрации элементов в боковике:

По параметру отчета.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": 135,
 19         "selection": null,
 20         "hierarchyId": null,
 21         "limit": null
 22       }
 23     ],
 24     "dictionaryAttributesLinks": [],
 25     "specialFilters": {
 26       "filtersByDataOptions": {
 27         "filtersByData": [],
 28         "needRestoreFullHierachy": false,
 29         "joinOption": "Or",
 30         "restoreElements": null
 31       },
 32       "dictionaryAttributesLinks": [],
 33       "needRestoreFullHierachy": false,
 34       "restoreElements": null
 35     },
 36     "isEditable": false
 37   },
 38   "topHeader": {
 39     "topHeaderItems": [
 40       {
 41         "dictionaryAttributes": [
 42           {
 43             "dictionaryId": 135,
 44             "attribute": {
 45               "id": 2,
 46               "discriminator": "OwnAttributeDefinitionDto"
 47             },
 48             "filter": null,
 49             "sortingOptions": null,
 50             "attributeId": null,
 51             "displayAttributeType": "AttributeName",
 52             "displayAttributeName": null,
 53             "addFirstElementValue": false,
 54             "overwriteNotFirstElementValues": true,
 55             "delimiter": ", ",
 56             "hideAttributeNameInHeader": false,
 57             "headerNameDelimiter": " / ",
 58             "duplicateValuesForNextDictionaries": true,
 59             "duplicateValuesForNextRows": true,
 60             "displayValueOptions": null,
 61             "linkedAttributeSettings": null,
 62             "skippedFilterAttributesByLink": [],
 63             "filterOptionsByLinks": null
 64           }
 65         ],
 66         "settings": null,
 67         "hyperlinkOptions": null,
 68         "hasImage": false,
 69         "columnOptions": null,
 70         "discriminator": "AttributeHeaderItemDto"
 71       },
 72       {
 73         "dictionaryAttributes": [
 74           {
 75             "dictionaryId": 135,
 76             "attribute": {
 77               "id": 21,
 78               "discriminator": "OwnAttributeDefinitionDto"
 79             },
 80             "filter": {
 81               "parameterFilterOptions": {
 82                 "attribute": {
 83                   "id": 1,
 84                   "discriminator": "OwnAttributeDefinitionDto"
 85                 }
 86               },
 87               "value": {
 88                 "id": 1,
 89                 "name": null
 90               },
 91               "skipIfValueNull": true,
 92               "attributeId": null,
 93               "attribute": {
 94                 "id": 1,
 95                 "discriminator": "OwnAttributeDefinitionDto"
 96               },
 97               "conditionType": "AttributeInCollection",
 98               "inversion": false,
 99               "discriminator": "ParameterConditionalDictionaryFilterDto"
100             },
101             "sortingOptions": null,
102             "attributeId": null,
103             "displayAttributeType": "AttributeName",
104             "displayAttributeName": null,
105             "addFirstElementValue": false,
106             "overwriteNotFirstElementValues": true,
107             "delimiter": ", ",
108             "hideAttributeNameInHeader": false,
109             "headerNameDelimiter": " / ",
110             "duplicateValuesForNextDictionaries": true,
111             "duplicateValuesForNextRows": true,
112             "displayValueOptions": null,
113             "linkedAttributeSettings": null,
114             "skippedFilterAttributesByLink": [],
115             "filterOptionsByLinks": null
116           }
117         ],
118         "settings": null,
119         "hyperlinkOptions": null,
120         "hasImage": false,
121         "columnOptions": {
122           "width": null,
123           "format": null,
124           "dataControlOptions": {
125             "format": null,
126             "mask": null,
127             "min": null,
128             "max": null,
129             "component": null,
130             "searchSettings": null
131           },
132           "isReadOnly": null,
133           "displayDuplicatedValues": null,
134           "duplicateValueOptions": "Undefined",
135           "allowChangeColumnValue": null,
136           "singleValueColumn": null,
137           "hyperlinkOptions": null,
138           "imageType": "None",
139           "absentDictionariesOptions": null
140         },
141         "discriminator": "AttributeHeaderItemDto"
142       }
143     ],
144     "needFilterAttributesByLinks": false,
145     "enableFilterByLinks": false,
146     "numerationSettings": null,
147     "filterOptions": null
148   },
149   "parameters": [
150     {
151       "dictionaryId": 0,
152       "sortingOptions": null,
153       "displayValueOptions": null,
154       "options": {
155         "groupingOptions": null,
156         "groupingMethod": "Default",
157         "sortingOptions": null,
158         "rootElement": null,
159         "virtualElements": null,
160         "displayValueOptions": null,
161         "displayAttribute": null,
162         "dictionaryId": 132,
163         "filter": null,
164         "selection": null,
165         "hierarchyId": null,
166         "limit": null
167       },
168       "attributeValues": null,
169       "selectionFilter": null,
170       "defaultValue": [
171         1,
172         2,
173         3
174       ],
175       "value": [
176         1,
177         2,
178         3
179       ],
180       "isMultiselect": true,
181       "isEmptyValuePossible": false,
182       "isDisableable": false,
183       "isDisabled": false,
184       "dataControlOptions": null,
185       "id": 1,
186       "name": "Виды древесины",
187       "discriminator": "DictionaryParameterDto"
188     }
189   ],
190   "styles": [],
191   "styleOptions": [],
192   "stylesTemplate": [],
193   "filtersByDataOptions": null,
194   "view": null,
195   "externalExecutions": null,
196   "settings": null,
197   "code": "New_Pivot_6_copy",
198   "id": 137,
199   "name": "По параметру"
200 }

Пример фильтрации справочника параметра от другого параметра

Кейс: справочник 16 фильтруется от значений атрибута 24 справочника 19 из соседнего параметра

 1     {
 2       "dictionaryId": 0,
 3       "options": {
 4         "groupingMethod": "Default",
 5         "virtualElements": [],
 6         "dictionaryId": 16,
 7         "filter": {
 8           "type": "And",
 9           "filters": [
10             {
11               "parameterFilterOptions": {
12                 "attribute": {
13                   "discriminator": "OwnAttributeDefinitionDto",
14                   "id": 24
15                 }
16               },
17               "value": {
18                 "id": 1,
19                 "name": null
20               },
21               "skipIfValueNull": false,
22               "attributeId": null,
23               "attribute": {
24                 "discriminator": "OwnAttributeDefinitionDto",
25                 "id": 1
26               },
27               "conditionType": "AttributeInCollection",
28               "discriminator": "ParameterConditionalDictionaryFilterDto",
29               "inversion": false
30             }
31           ],
32           "discriminator": "CompoundDictionaryFilterDto",
33           "inversion": false
34         },
35         "hierarchyId": null,
36         "limit": null
37       },
38       "discriminator": "DictionaryParameterDto",
39       "defaultValue": [],
40       "value": null,
41       "isMultiselect": true,
42       "isEmptyValuePossible": true,
43       "isDisableable": false,
44       "isDisabled": false,
45       "id": 2,
46       "name": "компания"
47     }