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

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Строка 1: Строка 1:
!!! СТРАНИЦА НАХОДИТСЯ В РАЗРАБОТКЕ!!!
+
!!! СТРАНИЦА НАХОДИТСЯ В РАЗРАБОТКЕ!!!  
На практике часто необходимо отфильтровывать данные несколькими фильтрами, для это используется тип фильтра CompoundDictionaryFilterDto. В нем обязетьуказывается тип
+
<br>
 +
На практике часто необходимо отфильтровывать данные несколькими фильтрами, для это используется тип фильтра CompoundDictionaryFilterDto. В нем обязательно указывается тип объединения фильтров - выбрать только те элементы, которые удовлетворяют всем вложенным фильтрам одновременно (And), либо выбрать элементы, которые удовлетворяют хотя бы одному вложенному фильтру (Or).  <br>
 +
Далее идет блок "filters", где описывается каждый вложенный фильтр. Необходимо отметить, что в структуре этих вложенных фильтров опущено конструкция "filter":{...}, они начинаются сразу с непосредственного описания (см. пример).
 +
 
 
<syntaxhighlight lang="JSON" line>
 
<syntaxhighlight lang="JSON" line>
 
"filter": {
 
"filter": {
Строка 17: Строка 20:
 
|-
 
|-
 
| type|| Тип And - выбор элементов, удовлетворяющих одновременно всем описанным фильтрам. <br> Тип Or - выберутся элементы, которые удовлетворяют хотя бы одному из описанных фильтров.
 
| type|| Тип And - выбор элементов, удовлетворяющих одновременно всем описанным фильтрам. <br> Тип Or - выберутся элементы, которые удовлетворяют хотя бы одному из описанных фильтров.
 +
|-
 +
| inversion || В значении "false" фильтр отберет удовлетворяющие ему значения, в значении "true" - все значения, которые наоборот не удовлетворяют ему
 
|-
 
|-
 
| discriminator|| CompoundDictionaryFilterDto
 
| discriminator|| CompoundDictionaryFilterDto

Версия 11:30, 19 апреля 2021

!!! СТРАНИЦА НАХОДИТСЯ В РАЗРАБОТКЕ!!!
На практике часто необходимо отфильтровывать данные несколькими фильтрами, для это используется тип фильтра CompoundDictionaryFilterDto. В нем обязательно указывается тип объединения фильтров - выбрать только те элементы, которые удовлетворяют всем вложенным фильтрам одновременно (And), либо выбрать элементы, которые удовлетворяют хотя бы одному вложенному фильтру (Or).
Далее идет блок "filters", где описывается каждый вложенный фильтр. Необходимо отметить, что в структуре этих вложенных фильтров опущено конструкция "filter":{...}, они начинаются сразу с непосредственного описания (см. пример).

1 "filter": {
2         "type": "And",
3         "filters": [
4           {...},
5           {...},
6         ],
7         "inversion": false,
8         "discriminator": "CompoundDictionaryFilterDto"

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

Свойство Описание
type Тип And - выбор элементов, удовлетворяющих одновременно всем описанным фильтрам.
Тип Or - выберутся элементы, которые удовлетворяют хотя бы одному из описанных фильтров.
inversion В значении "false" фильтр отберет удовлетворяющие ему значения, в значении "true" - все значения, которые наоборот не удовлетворяют ему
discriminator CompoundDictionaryFilterDto

Пример: