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

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Строка 32: Строка 32:
 
| conditionId || [[Платформа_3V/Формы/Правила| '''Условия''']], при которых применяется фильтр  
 
| conditionId || [[Платформа_3V/Формы/Правила| '''Условия''']], при которых применяется фильтр  
 
|}
 
|}
 +
Далее необходимо описать параметр в соответствующем разделе json:
 +
<syntaxhighlight lang="JSON" line>
 +
"parameters": [
 +
    {
 +
      "id": 1,
 +
      "name": "Объект",
 +
      "defaultValue": [7]
 +
    }
 +
  ]
 +
</syntaxhighlight>
 +
Где id=1, соответствуют номеру, который указан в parameterId, значение по умолчанию можно оставить пустым.
 +
==Пример==
 +
Показать запись из справочника "Контрагенты" по параметру ParameterId=1.
 +
В пользовательскую карточку приходит значение параметра, в данном случае оно задано по умолчанию, справочник "Контрагенты" фильтруется по данному параметру и показывает соответствующую запись.
 +
 +
<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": 10735,
 +
  "name": "Пример фильтра от справочника (EntryFilterDto)",
 +
  "description": null,
 +
  "title": "Пример фильтрации_справочник от справочника",
 +
  "entrySettings": null,
 +
  "uiSources": [
 +
    {
 +
      "actionConfirmation": {
 +
        "message": null,
 +
        "conditionId": null
 +
      },
 +
      "controlsValueCalculateRulesIds": [],
 +
      "conditionalActions": [],
 +
      "onBeforeClickConditionalActions": [],
 +
      "submitRuleIds": [],
 +
      "id": 100,
 +
      "caption": "Сохранить",
 +
      "enable": true,
 +
      "visible": true,
 +
      "hint": null,
 +
      "uiDataSource": null,
 +
      "doActionOnChangeValue": true,
 +
      "onAfterChangeValueConditionalActions": null,
 +
      "onAfterChangeValueByClientConditionalActions": null,
 +
      "rebuildDependentsObjectOnChange": false,
 +
      "enableRuleIds": [],
 +
      "visibleRuleIds": [],
 +
      "access": null,
 +
      "isValueChanged": false,
 +
      "expressionId": null,
 +
      "discriminator": "ButtonSubmitSourceEntry"
 +
    },
 +
    {
 +
      "dataSourceId": 2,
 +
      "nameTemplate": "",
 +
      "displayAttribute": null,
 +
      "hasMultipleValue": false,
 +
      "hasNullableValue": false,
 +
      "maxElements": null,
 +
      "hasServerFiltration": false,
 +
      "searchSettings": {
 +
        "maxElements": null,
 +
        "minInputChars": 2,
 +
        "searchMode": "Client",
 +
        "debounceMs": 300
 +
      },
 +
      "id": 1,
 +
      "caption": "Вид контрагента",
 +
      "enable": true,
 +
      "visible": true,
 +
      "hint": null,
 +
      "uiDataSource": {
 +
        "attribute": {
 +
          "id": 21,
 +
          "discriminator": "OwnAttributeDefinitionDto"
 +
        },
 +
        "attributeId": null,
 +
        "sourceId": 3,
 +
        "discriminator": "UiDataSourceDictionary"
 +
      },
 +
      "doActionOnChangeValue": true,
 +
      "onAfterChangeValueConditionalActions": null,
 +
      "onAfterChangeValueByClientConditionalActions": null,
 +
      "rebuildDependentsObjectOnChange": true,
 +
      "enableRuleIds": [],
 +
      "visibleRuleIds": [],
 +
      "access": null,
 +
      "isValueChanged": true,
 +
      "expressionId": null,
 +
      "discriminator": "DictionarySourceEntry"
 +
    },
 +
    {
 +
      "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,
 +
      "uiDataSource": {
 +
        "attribute": {
 +
          "id": 2,
 +
          "discriminator": "OwnAttributeDefinitionDto"
 +
        },
 +
        "attributeId": null,
 +
        "sourceId": 3,
 +
        "discriminator": "UiDataSourceDictionary"
 +
      },
 +
      "discriminator": "StringSourceEntry"
 +
    }
 +
  ],
 +
  "entryDataSources": [
 +
    {
 +
      "dictionaryId": 10754,
 +
      "hierarchyId": null,
 +
      "filter": null,
 +
      "sortingOptions": null,
 +
      "groupingOptions": null,
 +
      "dictionaryAttributes": null,
 +
      "defaultValue": [],
 +
      "defaultValueExpressionId": null,
 +
      "parameterId": null,
 +
      "dictionarySourceSelectionMode": "None",
 +
      "dataSourceAttributesAdditionsSettings": [],
 +
      "externalFileStorageUrl": null,
 +
      "filePrefix": null,
 +
      "defaultNewElementSettings": null,
 +
      "id": 2,
 +
      "name": "Вид контрагента",
 +
      "isReadOnly": true,
 +
      "dataEditRuleIds": [],
 +
      "beforeSaveDataActions": [],
 +
      "afterSaveDataActions": [],
 +
      "discriminator": "DictionaryDataSource"
 +
    },
 +
    {
 +
      "dictionaryId": 10755,
 +
      "hierarchyId": null,
 +
      "filter": {
 +
        "parameterId": 1,
 +
        "attribute": {
 +
          "id": 1,
 +
          "discriminator": "OwnAttributeDefinitionDto"
 +
        },
 +
        "conditionType": "AttributeInCollection",
 +
        "inversion": false,
 +
        "conditionId": null,
 +
        "discriminator": "EntryParameterFilterDto"
 +
      },
 +
      "sortingOptions": null,
 +
      "groupingOptions": null,
 +
      "dictionaryAttributes": [],
 +
      "defaultValue": [],
 +
      "defaultValueExpressionId": null,
 +
      "parameterId": null,
 +
      "dictionarySourceSelectionMode": "None",
 +
      "dataSourceAttributesAdditionsSettings": [],
 +
      "externalFileStorageUrl": null,
 +
      "filePrefix": null,
 +
      "defaultNewElementSettings": null,
 +
      "id": 3,
 +
      "name": "Контрагенты",
 +
      "isReadOnly": false,
 +
      "dataEditRuleIds": [],
 +
      "beforeSaveDataActions": [],
 +
      "afterSaveDataActions": [],
 +
      "discriminator": "DictionaryDataSource"
 +
    }
 +
  ],
 +
  "parameters": [
 +
    {
 +
      "id": 1,
 +
      "name": "Объект",
 +
      "defaultValue": [
 +
        7
 +
      ]
 +
    }
 +
  ],
 +
  "binaryConditionsRules": [],
 +
  "submitValidateRules": [],
 +
  "expressions": [],
 +
  "controlsValueCalculateRules": [],
 +
  "actions": [],
 +
  "conditionActionIdsOnOpen": [],
 +
  "conditionalActions": [],
 +
  "selectionSets": [],
 +
  "reportTemplates": [],
 +
  "useNewDependenciesBuilder": null
 +
}
 +
</syntaxhighlight>
 +
</div></div>

Версия 09:21, 15 апреля 2021

СТРАНИЦА НАХОДИТСЯ В РАЗРАБОТКЕ

Фильтр EntryParameterFilterDto позволяет выбрать данные в справочнике по заданному параметру. Например, выбрать элемент справочника с конкретным 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": "EntryParameterFilterDto"
11       }

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

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

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

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

Где id=1, соответствуют номеру, который указан в parameterId, значение по умолчанию можно оставить пустым.

Пример

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

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