Платформа 3V/Формы/Источники данных/Справочник/Фильтрация/По фиксированным значениям: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
 
(не показано 16 промежуточных версий 2 участников)
Строка 1: Строка 1:
!!! СТРАНИЦА НАХОДИТСЯ В РАЗРАБОТКЕ !!!
+
Фильтр выберет из справочника элементы, у которых значение указанного атрибута совпадают с заданным значением в фильтре.
<br>
 
Фильтр выберет из справочника элементы, атрибуты которых совпадают с заданным значением.
 
 
<syntaxhighlight lang="JSON" line>
 
<syntaxhighlight lang="JSON" line>
 
  "filter": {
 
  "filter": {
 +
        "value": [
 +
          1,
 +
          2,
 +
          3
 +
        ],
 +
        "attribute": {
 +
          "id": 21,
 +
          "discriminator": "OwnAttributeDefinitionDto"
 +
        },
 +
        "conditionType": "AttributeInCollection",
 +
        "inversion": false,
 +
        "conditionExpressionId": null,
 +
        "discriminator": "ValueConditionalDictionaryCardsFilter"
 +
      },
 +
</syntaxhighlight>
 +
== Описание свойств фильтра ==
 +
{| class="wikitable"
 +
|-
 +
! Свойство !! Описание
 +
|-
 +
| inversion || В значении "false" источник-справочник принимает значения, которые удовлетворяют фильтру, в значении "true" - все значения, которые наоборот не удовлетворяют ему
 +
|-
 +
| discriminator|| ValueConditionalDictionaryCardsFilter
 +
|-
 +
| attribute|| [[Платформа_3V/Справочник/Связи_атрибутов_справочников|''' Атрибут''']] текущего источника, с которым будет сравниваться заданное значение. Указывается номер Id и тип атрибута в данном случае собственный (OwnAttributeDefinitionDto), так как используются данные текущего справочника.
 +
|-
 +
| conditionType || Тип условий
 +
|-
 +
| value || значение с которым будет сравниваться значение атрибута фильтруемого справочника. Форматы данных должны совпадать.
 +
|-
 +
| [[ Платформа_3V/Формы/Выражения|'''conditionExpressionId''']]|| Выражение с условием, при которых применяется фильтр (выражение должно возвращать true или false)
 +
|}
 +
 +
== Пример: ==
 +
В данном примере справочник "Контрагенты" отфильтрован по значению атрибута "Вид".
 +
[[Файл:Screenshot 2021-04-20 at 16.29.17.png|обрамить|слева]]
 +
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
 +
 +
Атрибут "Вид" связный, в нем хранятся идентификаторы справочника "Виды контрагентов". Фильтр выбирает элементы со значениями 1,2 и 3.
 +
[[Файл:Screenshot 2021-04-20 at 16.32.29.png|обрамить|слева]]
 +
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
 +
 +
В справочнике "Виды контрагентов" этим значениям соответствуют Индивидуальный предприниматель (физ. лицо), Индивидуальный предприниматель (юр. лицо) и Публичное акционерное общество.
 +
[[Файл:Screenshot 2021-04-20 at 16.34.44.png|обрамить|слева]]
 +
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
 +
Для этого соответственно настроить фильтр, где "value" - это id элементов "Виды контрагентов", "attribute" - это id фильтруемого атрибута "Вид контрагента" спр."Контрагенты" (который мы фильтруем) и "conditionType": "AttributeInCollection" - чтобы атрибут проверялся на наличие элемента из коллекции прописанных в "value"
 +
 +
<syntaxhighlight lang="JSON" line>
 +
"filter": {
 +
        "value": [
 +
          1,
 +
          2,
 +
          3
 +
        ],
 +
        "attribute": {
 +
          "id": 21,
 +
          "discriminator": "OwnAttributeDefinitionDto"
 +
        },
 +
        "conditionType": "AttributeInCollection",
 +
        "inversion": false,
 +
        "conditionId": null,
 +
        "discriminator": "ValueConditionalDictionaryCardsFilter"
 +
      },
 +
</syntaxhighlight>
 +
 +
<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>
 +
{
 +
  "id": 10826,
 +
  "name": "Пример фильтра по значениям (ValueConditionalDictionaryCardsFilter)",
 +
  "description": null,
 +
  "title": "Пример фильтрации по конкретному значению",
 +
  "entrySettings": null,
 +
  "uiSources": [
 +
    {
 +
      "trimSpaces": false,
 +
      "defaultValue": null,
 +
      "value": null,
 +
      "id": 2,
 +
      "caption": "Контрагент",
 +
      "enable": true,
 +
      "visible": true,
 +
      "hint": null,
 +
      "doActionOnChangeValue": false,
 +
      "onAfterChangeValueConditionalActions": null,
 +
      "onAfterChangeValueByClientConditionalActions": null,
 +
      "rebuildDependentsObjectOnChange": true,
 +
      "enableRuleIds": [],
 +
      "visibleRuleIds": [],
 +
      "access": null,
 +
      "isValueChanged": false,
 +
      "dataSourceId": 3,
 +
      "discriminator": "DictionarySourceEntry",
 +
      "hasMultipleValue": true
 +
    }
 +
  ],
 +
  "entryDataSources": [
 +
    {
 +
      "dictionaryId": 10755,
 +
      "hierarchyId": null,
 +
      "filter": {
 
         "value": [
 
         "value": [
 
           1,
 
           1,
Строка 16: Строка 117:
 
         "inversion": false,
 
         "inversion": false,
 
         "conditionId": null,
 
         "conditionId": null,
         "discriminator": "ValueConditionalDictionaryFilterDto"
+
         "discriminator": "ValueConditionalDictionaryCardsFilter"
 
       },
 
       },
 +
      "sortingOptions": null,
 +
      "groupingOptions": null,
 +
      "dictionaryAttributes": [],
 +
      "defaultValue": [],
 +
      "defaultValueExpressionId": null,
 +
      "parameterId": null,
 +
      "dictionarySourceSelectionMode": "SelectAll",
 +
      "dataSourceAttributesAdditionsSettings": [],
 +
      "externalFileStorageUrl": null,
 +
      "filePrefix": null,
 +
      "defaultNewElementSettings": null,
 +
      "id": 3,
 +
      "name": "Контрагенты",
 +
      "isReadOnly": false,
 +
      "dataEditRuleIds": [],
 +
      "beforeSaveDataActions": [],
 +
      "afterSaveDataActions": [],
 +
      "discriminator": "DictionaryDataSource"
 +
    }
 +
  ],
 +
  "parameters": [],
 +
  "binaryConditionsRules": [],
 +
  "submitValidateRules": [],
 +
  "expressions": [],
 +
  "controlsValueCalculateRules": [],
 +
  "actions": [],
 +
  "conditionActionIdsOnOpen": [],
 +
  "conditionalActions": [],
 +
  "selectionSets": [],
 +
  "reportTemplates": [],
 +
  "useNewDependenciesBuilder": null
 +
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
</div></div>

Текущая версия на 03:25, 21 апреля 2022

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

 1  "filter": {
 2         "value": [
 3           1,
 4           2,
 5           3
 6         ],
 7         "attribute": {
 8           "id": 21,
 9           "discriminator": "OwnAttributeDefinitionDto"
10         },
11         "conditionType": "AttributeInCollection",
12         "inversion": false,
13         "conditionExpressionId": null,
14         "discriminator": "ValueConditionalDictionaryCardsFilter"
15       },

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

Свойство Описание
inversion В значении "false" источник-справочник принимает значения, которые удовлетворяют фильтру, в значении "true" - все значения, которые наоборот не удовлетворяют ему
discriminator ValueConditionalDictionaryCardsFilter
attribute Атрибут текущего источника, с которым будет сравниваться заданное значение. Указывается номер Id и тип атрибута в данном случае собственный (OwnAttributeDefinitionDto), так как используются данные текущего справочника.
conditionType Тип условий
value значение с которым будет сравниваться значение атрибута фильтруемого справочника. Форматы данных должны совпадать.
conditionExpressionId Выражение с условием, при которых применяется фильтр (выражение должно возвращать true или false)

Пример:

В данном примере справочник "Контрагенты" отфильтрован по значению атрибута "Вид".

Screenshot 2021-04-20 at 16.29.17.png


















Атрибут "Вид" связный, в нем хранятся идентификаторы справочника "Виды контрагентов". Фильтр выбирает элементы со значениями 1,2 и 3.

Screenshot 2021-04-20 at 16.32.29.png



























В справочнике "Виды контрагентов" этим значениям соответствуют Индивидуальный предприниматель (физ. лицо), Индивидуальный предприниматель (юр. лицо) и Публичное акционерное общество.

Screenshot 2021-04-20 at 16.34.44.png

















Для этого соответственно настроить фильтр, где "value" - это id элементов "Виды контрагентов", "attribute" - это id фильтруемого атрибута "Вид контрагента" спр."Контрагенты" (который мы фильтруем) и "conditionType": "AttributeInCollection" - чтобы атрибут проверялся на наличие элемента из коллекции прописанных в "value"

 1  "filter": {
 2         "value": [
 3           1,
 4           2,
 5           3
 6         ],
 7         "attribute": {
 8           "id": 21,
 9           "discriminator": "OwnAttributeDefinitionDto"
10         },
11         "conditionType": "AttributeInCollection",
12         "inversion": false,
13         "conditionId": null,
14         "discriminator": "ValueConditionalDictionaryCardsFilter"
15       },
JSON серверной карточки
 1 {
 2   "id": 10826,
 3   "name": "Пример фильтра по значениям (ValueConditionalDictionaryCardsFilter)",
 4   "description": null,
 5   "title": "Пример фильтрации по конкретному значению",
 6   "entrySettings": null,
 7   "uiSources": [
 8     {
 9       "trimSpaces": false,
10       "defaultValue": null,
11       "value": null,
12       "id": 2,
13       "caption": "Контрагент",
14       "enable": true,
15       "visible": true,
16       "hint": null,
17       "doActionOnChangeValue": false,
18       "onAfterChangeValueConditionalActions": null,
19       "onAfterChangeValueByClientConditionalActions": null,
20       "rebuildDependentsObjectOnChange": true,
21       "enableRuleIds": [],
22       "visibleRuleIds": [],
23       "access": null,
24       "isValueChanged": false,
25       "dataSourceId": 3,
26       "discriminator": "DictionarySourceEntry",
27       "hasMultipleValue": true
28     }
29   ],
30   "entryDataSources": [
31     {
32       "dictionaryId": 10755,
33       "hierarchyId": null,
34       "filter": {
35         "value": [
36           1,
37           2,
38           3
39         ],
40         "attribute": {
41           "id": 21,
42           "discriminator": "OwnAttributeDefinitionDto"
43         },
44         "conditionType": "AttributeInCollection",
45         "inversion": false,
46         "conditionId": null,
47         "discriminator": "ValueConditionalDictionaryCardsFilter"
48       },
49       "sortingOptions": null,
50       "groupingOptions": null,
51       "dictionaryAttributes": [],
52       "defaultValue": [],
53       "defaultValueExpressionId": null,
54       "parameterId": null,
55       "dictionarySourceSelectionMode": "SelectAll",
56       "dataSourceAttributesAdditionsSettings": [],
57       "externalFileStorageUrl": null,
58       "filePrefix": null,
59       "defaultNewElementSettings": null,
60       "id": 3,
61       "name": "Контрагенты",
62       "isReadOnly": false,
63       "dataEditRuleIds": [],
64       "beforeSaveDataActions": [],
65       "afterSaveDataActions": [],
66       "discriminator": "DictionaryDataSource"
67     }
68   ],
69   "parameters": [],
70   "binaryConditionsRules": [],
71   "submitValidateRules": [],
72   "expressions": [],
73   "controlsValueCalculateRules": [],
74   "actions": [],
75   "conditionActionIdsOnOpen": [],
76   "conditionalActions": [],
77   "selectionSets": [],
78   "reportTemplates": [],
79   "useNewDependenciesBuilder": null
80 }