Платформа 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 отчета

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

Кейс: справочник 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     }