Платформа 3V/Формы/Источники данных/Справочник/Фильтрация/По фиксированным значениям: различия между версиями
(не показано 17 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
− | + | Фильтр выберет из справочника элементы, у которых значение указанного атрибута совпадают с заданным значением в фильтре. | |
− | + | <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, | ||
Строка 15: | Строка 117: | ||
"inversion": false, | "inversion": false, | ||
"conditionId": null, | "conditionId": null, | ||
− | "discriminator": " | + | "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> | ||
+ | </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) |
Пример:
В данном примере справочник "Контрагенты" отфильтрован по значению атрибута "Вид".
Атрибут "Вид" связный, в нем хранятся идентификаторы справочника "Виды контрагентов". Фильтр выбирает элементы со значениями 1,2 и 3.
В справочнике "Виды контрагентов" этим значениям соответствуют Индивидуальный предприниматель (физ. лицо), Индивидуальный предприниматель (юр. лицо) и Публичное акционерное общество.
Для этого соответственно настроить фильтр, где "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 },