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

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
 
(не показано 15 промежуточных версий 2 участников)
Строка 1: Строка 1:
== СТРАНИЦА НАХОДИТСЯ В РАЗРАБОТКЕ ==
+
Фильтр EntryParameterFilter позволяет выбрать данные в справочнике по [[Платформа_3V/Формы/Параметры_формы|'''заданному параметру''']]. Например, выбрать элемент справочника с конкретным id. Элемент "filter" добавляется в источник, который необходимо отфильтровать. Фильтр имеет следующую структуру:
Фильтр EntryParameterFilterDto позволяет выбрать данные в справочнике по [[Платформа_3V/Формы/Параметры_формы|'''заданному параметру''']]. Например, выбрать элемент справочника с конкретным id. Элемент "filter" добавляется в источник, который необходимо отфильтровать. Фильтр имеет следующую структуру:
 
 
<syntaxhighlight lang="JSON" line>
 
<syntaxhighlight lang="JSON" line>
 
"filter": {
 
"filter": {
Строка 11: Строка 10:
 
         "inversion": false,
 
         "inversion": false,
 
         "conditionId": null,
 
         "conditionId": null,
         "discriminator": "EntryParameterFilterDto"
+
         "discriminator": "EntryParameterFilter"
 
       }
 
       }
 
</syntaxhighlight>
 
</syntaxhighlight>
Строка 24: Строка 23:
 
| attribute|| [[Платформа_3V/Справочник/Связи_атрибутов_справочников|''' Атрибут''']] текущего источника - справочника, элемент которого будет выбран по заданному параметру. Указывается номер Id и тип атрибута в данном случае собственный (OwnAttributeDefinitionDto), так как используются данные текущего справочника.  
 
| attribute|| [[Платформа_3V/Справочник/Связи_атрибутов_справочников|''' Атрибут''']] текущего источника - справочника, элемент которого будет выбран по заданному параметру. Указывается номер Id и тип атрибута в данном случае собственный (OwnAttributeDefinitionDto), так как используются данные текущего справочника.  
 
|-
 
|-
| discriminator|| EntryParameterFilterDto
+
| discriminator|| EntryParameterFilter
 
|-
 
|-
 
| conditionType || Тип условий
 
| conditionType || Тип условий
 
|-  
 
|-  
| inversion || В значении "false" фильтр отберет удовлетворяющие ему значения, в значении "true" - все значения, которые наоборот не удовлетворяют ему
+
| inversion || В значении "false" источник-справочник принимает значения, которые удовлетворяют фильтру, в значении "true" - все значения, которые наоборот не удовлетворяют ему
 
|-  
 
|-  
 
| conditionId || [[Платформа_3V/Формы/Правила| '''Условия''']], при которых применяется фильтр  
 
| conditionId || [[Платформа_3V/Формы/Правила| '''Условия''']], при которых применяется фильтр  
Строка 42: Строка 41:
 
   ]
 
   ]
 
</syntaxhighlight>
 
</syntaxhighlight>
Где id=1, соответствуют номеру, который указан в parameterId, значение по умолчанию можно оставить пустым.
+
Где id=1, соответствуют номеру, который указан в parameterId.
 +
 
 +
== Особенности работы карточек с фильтром по параметру==
 +
Фильтр EntryParameterFilter предполагает два сценария работы карточки:<br>
 +
1. Выбор элемента справочника по параметру,<br>
 +
2. Запись новых элементов справочника.<br>
 +
Если в карточку приходит не пустое значение параметра, но отрабатывается первый сценарий, если же значение параметра пустое, то карточка откроется на редактирование, и в справочнике можно будет создать новый элемент, при условии что свойство справочника "isReadOnly" имеет значение "false".
 +
 
 
==Пример==
 
==Пример==
Показать запись из справочника "Контрагенты" по параметру ParameterId=1.  
+
Пользовательская карточка состоит из двух основных элементов - выпадающий список "Вид контрагента" и поле для записи "Контрагенты".
В пользовательскую карточку приходит значение параметра, в данном случае оно задано по умолчанию, справочник "Контрагенты" фильтруется по данному параметру и показывает соответствующую запись.  
+
В серверной карточке три контрола: кнопка "Сохранить" (id=100), справочник "Вид контрагента" (id=1) и справочник "Контрагент" (id=2). <br>
 +
Источников два - "Вид контрагента" (id=2) и "Контрагент" (id=3), последний имеет свойство isReadOnly" со значением "false", то есть в него можно записывать данные.<br>
 +
 
 +
====Первый сценарий работы карточки "Выбор записи справочника по параметру"====
 +
 
 +
[[Файл:Screenshot 2021-04-15 at 13.41.05.png|обрамить|слева]]
 +
<br>
 +
В пользовательскую карточку приходит значение параметра,<br> откроется для чтения соответствующая запись справочника "Контрагенты".
 +
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
 +
 
 +
====Второй сценарий работы карточки "Запись новых элементов"====
 +
 
 +
[[Файл:Screenshot 2021-04-15 at 13.45.11.png|обрамить|слева]]
 +
<br>
 +
В пользовательскую карточку приходит пустое значение параметра. <br>
 +
Карточка откроется на редактирование, позволяющая выбрать из выпадающего <br>
 +
списка "Вид контрагента" и списать новое наименование в поле "Контрагенты", <br>
 +
после нажатия кнопки "Сохранить" в справочнике "Контрагенты" появится новый элемент.
 +
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;">
Строка 55: Строка 79:
 
   "name": "Пример фильтра от справочника (EntryFilterDto)",
 
   "name": "Пример фильтра от справочника (EntryFilterDto)",
 
   "description": null,
 
   "description": null,
   "title": "Пример фильтрации_справочник от справочника",
+
   "title": "Пример фильтрации по параметру",
 
   "entrySettings": null,
 
   "entrySettings": null,
 
   "uiSources": [
 
   "uiSources": [
Строка 188: Строка 212:
 
         "inversion": false,
 
         "inversion": false,
 
         "conditionId": null,
 
         "conditionId": null,
         "discriminator": "EntryParameterFilterDto"
+
         "discriminator": "EntryParameterFilter"
 
       },
 
       },
 
       "sortingOptions": null,
 
       "sortingOptions": null,

Текущая версия на 14:45, 4 апреля 2022

Фильтр EntryParameterFilter позволяет выбрать данные в справочнике по заданному параметру. Например, выбрать элемент справочника с конкретным id. Элемент "filter" добавляется в источник, который необходимо отфильтровать. Фильтр имеет следующую структуру:

 1 "filter": {
 2         "parameterId": 1,
 3         "attribute": {
 4           "id": 1,
 5           "discriminator": "OwnAttributeDefinitionDto"
 6         },
 7         "conditionType": "AttributeInCollection",
 8         "inversion": false,
 9         "conditionId": null,
10         "discriminator": "EntryParameterFilter"
11       }

Описание свойств выражений

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

Далее необходимо описать параметр в соответствующем разделе json:

1  "parameters": [
2     {
3       "id": 1,
4       "name": "Объект",
5       "defaultValue": [7]
6     }
7   ]

Где id=1, соответствуют номеру, который указан в parameterId.

Особенности работы карточек с фильтром по параметру

Фильтр EntryParameterFilter предполагает два сценария работы карточки:
1. Выбор элемента справочника по параметру,
2. Запись новых элементов справочника.
Если в карточку приходит не пустое значение параметра, но отрабатывается первый сценарий, если же значение параметра пустое, то карточка откроется на редактирование, и в справочнике можно будет создать новый элемент, при условии что свойство справочника "isReadOnly" имеет значение "false".

Пример

Пользовательская карточка состоит из двух основных элементов - выпадающий список "Вид контрагента" и поле для записи "Контрагенты". В серверной карточке три контрола: кнопка "Сохранить" (id=100), справочник "Вид контрагента" (id=1) и справочник "Контрагент" (id=2).
Источников два - "Вид контрагента" (id=2) и "Контрагент" (id=3), последний имеет свойство isReadOnly" со значением "false", то есть в него можно записывать данные.

Первый сценарий работы карточки "Выбор записи справочника по параметру"

Screenshot 2021-04-15 at 13.41.05.png


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














Второй сценарий работы карточки "Запись новых элементов"

Screenshot 2021-04-15 at 13.45.11.png


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














JSON серверной карточки