Платформа 3V/Справочник/Cортировка: различия между версиями
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
− | {{DISPLAYTITLE:Сортировка | + | {{DISPLAYTITLE:Сортировка элементов справочника (SortingOptions)}} |
Последовательное расположение в зависимости от выбранного атрибута справочника | Последовательное расположение в зависимости от выбранного атрибута справочника | ||
Строка 27: | Строка 27: | ||
| nullsSortingMode || нулевые значения в начале / в конце ("PlaceFirst" / "PlaceLast") | | nullsSortingMode || нулевые значения в начале / в конце ("PlaceFirst" / "PlaceLast") | ||
|} | |} | ||
+ | |||
+ | == Особенности использования == | ||
+ | Сортировка по атрибуту справочника с типом '''"числовой, дробный"''' происходит по математической логике упорядочивания чисел (1 < 2 < 10). | ||
+ | |||
+ | Сортировка по атрибуту справочника с типом '''"дата"''' происходит в соответствии с порядком дней в календаре. | ||
+ | |||
+ | Сортировка по '''текстовому атрибуту''' происходит по каждому символу. Порядок по возрастанию, в рамках которого происходит упорядочивание, каждого символа в названии: символы ("-", "!" и т.д.), цифры (от 0 до 9), буквы русские (от А до Я), буквы латинского алфавита ( от A до Z) | ||
+ | |||
+ | == Пример использования в форме и отчете== | ||
+ | Кейс: исходный справочник "Договоры" имеет следующую структуру и типы данных в атрибутах | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Идентификатор !! Наименование !! Порядковый номер !! Сумма по договору !! Дата подписания | ||
+ | |- | ||
+ | !style="font-weight:normal;" | 1 !! style="font-weight:normal;" | 2 !! style="font-weight:normal;" | 21 !! style="font-weight:normal;" | 22 !! style="font-weight:normal;" | 23 | ||
+ | |- | ||
+ | !style="font-weight:normal;" | Числовой !! style="font-weight:normal;" | Текстовый !! style="font-weight:normal;" | Числовой !! style="font-weight:normal;" | Дробный !! style="font-weight:normal;" | Дата | ||
+ | |- | ||
+ | | 1 || 123 || 1 || 100,00 || 22.04.2021 | ||
+ | |- | ||
+ | | 2 || АБ-1-11 || 10 || 100,12 || 04.03.2021 | ||
+ | |- | ||
+ | | 3 || 1 || 2 || 98,00 || 22.04.2021 | ||
+ | |- | ||
+ | | 4 || 11 || 21 || 1,00 || | ||
+ | |- | ||
+ | | 5 || -11-АБ || 3 || 11,00 || 05.08.2019 | ||
+ | |- | ||
+ | | 6 || 2 || 11 || || 14.05.2020 | ||
+ | |} | ||
+ | |||
+ | При сортировке по возрастанию по атр. "Наименование" (id=2) порядок будет следующий: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Идентификатор !! Наименование !! Порядковый номер !! Сумма по договору !! Дата подписания | ||
+ | |- | ||
+ | !style="font-weight:normal;" | 1 !! style="font-weight:normal;" | 2 !! style="font-weight:normal;" | 21 !! style="font-weight:normal;" | 22 !! style="font-weight:normal;" | 23 | ||
+ | |- | ||
+ | !style="font-weight:normal;" | Числовой !! style="font-weight:normal;" | Текстовый !! style="font-weight:normal;" | Числовой !! style="font-weight:normal;" | Дробный !! style="font-weight:normal;" | Дата | ||
+ | |- | ||
+ | | 5 || '''-11-АБ''' || 3 || 11,00 || 05.08.2019 | ||
+ | |- | ||
+ | | 3 || '''1''' || 2 || 98,00 || 22.04.2021 | ||
+ | |- | ||
+ | | 4 || '''11''' || 21 || 1,00 || | ||
+ | |- | ||
+ | | 1 || '''123''' || 1 || 100,00 || 22.04.2021 | ||
+ | |- | ||
+ | | 6 || '''2''' || 11 || || 14.05.2020 | ||
+ | |- | ||
+ | | 2 || '''АБ-1-11''' || 10 || 100,12 || 04.03.2021 | ||
+ | |} | ||
+ | |||
+ | При сортировке по возрастанию по атр. "Порядковый номер" (id=21) порядок будет следующий: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Идентификатор !! Наименование !! Порядковый номер !! Сумма по договору !! Дата подписания | ||
+ | |- | ||
+ | !style="font-weight:normal;" | 1 !! style="font-weight:normal;" | 2 !! style="font-weight:normal;" | 21 !! style="font-weight:normal;" | 22 !! style="font-weight:normal;" | 23 | ||
+ | |- | ||
+ | !style="font-weight:normal;" | Числовой !! style="font-weight:normal;" | Текстовый !! style="font-weight:normal;" | Числовой !! style="font-weight:normal;" | Дробный !! style="font-weight:normal;" | Дата | ||
+ | |- | ||
+ | | 1 || 123 || '''1''' || 100,00 || 22.04.2021 | ||
+ | |- | ||
+ | | 3 || 1 || '''2''' || 98,00 || 22.04.2021 | ||
+ | |- | ||
+ | | 5 || -11-АБ || '''3''' || 11,00 || 05.08.2019 | ||
+ | |- | ||
+ | | 2 || АБ-1-11 || '''10''' || 100,12 || 04.03.2021 | ||
+ | |- | ||
+ | | 6 || 2 || '''11''' || || 14.05.2020 | ||
+ | |- | ||
+ | | 4 || 11 || '''21''' || 1,00 || | ||
+ | |} | ||
+ | |||
+ | При сортировке по убыванию по атр. "Сумма по договору" (id=22) и расположению пустых атрибутов в конце списка порядок будет следующий: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Идентификатор !! Наименование !! Порядковый номер !! Сумма по договору !! Дата подписания | ||
+ | |- | ||
+ | !style="font-weight:normal;" | 1 !! style="font-weight:normal;" | 2 !! style="font-weight:normal;" | 21 !! style="font-weight:normal;" | 22 !! style="font-weight:normal;" | 23 | ||
+ | |- | ||
+ | !style="font-weight:normal;" | Числовой !! style="font-weight:normal;" | Текстовый !! style="font-weight:normal;" | Числовой !! style="font-weight:normal;" | Дробный !! style="font-weight:normal;" | Дата | ||
+ | |- | ||
+ | | 2 || АБ-1-11 || 10 || '''100,12''' || 04.03.2021 | ||
+ | |- | ||
+ | | 1 || 123 || 1 || '''100,00''' || 22.04.2021 | ||
+ | |- | ||
+ | | 3 || 1 || 2 || '''98,00''' || 22.04.2021 | ||
+ | |- | ||
+ | | 5 || -11-АБ || 3 || '''11,00''' || 05.08.2019 | ||
+ | |- | ||
+ | | 4 || 11 || 21 || '''1,00''' || | ||
+ | |- | ||
+ | | 6 || 2 || 11 || || 14.05.2020 | ||
+ | |} | ||
+ | |||
+ | При сортировке по убыванию по атр. "Дата подписания" (id=22) и расположению пустых атрибутов в начале списка порядок будет следующий: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Идентификатор !! Наименование !! Порядковый номер !! Сумма по договору !! Дата подписания | ||
+ | |- | ||
+ | !style="font-weight:normal;" | 1 !! style="font-weight:normal;" | 2 !! style="font-weight:normal;" | 21 !! style="font-weight:normal;" | 22 !! style="font-weight:normal;" | 23 | ||
+ | |- | ||
+ | !style="font-weight:normal;" | Числовой !! style="font-weight:normal;" | Текстовый !! style="font-weight:normal;" | Числовой !! style="font-weight:normal;" | Дробный !! style="font-weight:normal;" | Дата | ||
+ | |- | ||
+ | | 4 || 11 || 21 || 1,00 || | ||
+ | |- | ||
+ | | 1 || 123 || 1 || 100,00 || '''22.04.2021''' | ||
+ | |- | ||
+ | | 3 || 1 || 2 || 98,00 || '''22.04.2021''' | ||
+ | |- | ||
+ | | 2 || АБ-1-11 || 10 || 100,12 || '''04.03.2021''' | ||
+ | |- | ||
+ | | 6 || 2 || 11 || || '''14.05.2020''' | ||
+ | |- | ||
+ | | 5 || -11-АБ || 3 || 11,00 || '''05.08.2019''' | ||
+ | |} | ||
+ | |||
+ | === Пример использования в форме=== | ||
+ | |||
+ | <br> | ||
+ | <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": 53, | ||
+ | "name": "Сортировка справочника договоры", | ||
+ | "description": "", | ||
+ | "title": "", | ||
+ | "entrySettings": null, | ||
+ | "uiSources": [ | ||
+ | { | ||
+ | "dataSourceId": 1, | ||
+ | "nameTemplate": "", | ||
+ | "displayAttribute": null, | ||
+ | "hasMultipleValue": false, | ||
+ | "hasNullableValue": false, | ||
+ | "maxElements": null, | ||
+ | "hasServerFiltration": false, | ||
+ | "id": 11, | ||
+ | "caption": "Без сортировки", | ||
+ | "enable": true, | ||
+ | "visible": true, | ||
+ | "hint": null, | ||
+ | "uiDataSource": null, | ||
+ | "doActionOnChangeValue": true, | ||
+ | "onAfterChangeValueConditionalActions": null, | ||
+ | "onAfterChangeValueByClientConditionalActions": null, | ||
+ | "rebuildDependentsObjectOnChange": true, | ||
+ | "enableRuleIds": [], | ||
+ | "visibleRuleIds": [], | ||
+ | "access": null, | ||
+ | "isValueChanged": true, | ||
+ | "expressionId": null, | ||
+ | "discriminator": "DictionarySourceEntry" | ||
+ | }, | ||
+ | { | ||
+ | "dataSourceId": 2, | ||
+ | "nameTemplate": "", | ||
+ | "displayAttribute": null, | ||
+ | "hasMultipleValue": false, | ||
+ | "hasNullableValue": false, | ||
+ | "maxElements": null, | ||
+ | "hasServerFiltration": false, | ||
+ | "id": 12, | ||
+ | "caption": "По возрастанию (по наименованию)", | ||
+ | "enable": true, | ||
+ | "visible": true, | ||
+ | "hint": null, | ||
+ | "uiDataSource": null, | ||
+ | "doActionOnChangeValue": true, | ||
+ | "onAfterChangeValueConditionalActions": null, | ||
+ | "onAfterChangeValueByClientConditionalActions": null, | ||
+ | "rebuildDependentsObjectOnChange": true, | ||
+ | "enableRuleIds": [], | ||
+ | "visibleRuleIds": [], | ||
+ | "access": null, | ||
+ | "isValueChanged": true, | ||
+ | "expressionId": null, | ||
+ | "discriminator": "DictionarySourceEntry" | ||
+ | }, | ||
+ | { | ||
+ | "dataSourceId": 3, | ||
+ | "nameTemplate": "[2] (Порядковый номер:[21])", | ||
+ | "displayAttribute": null, | ||
+ | "hasMultipleValue": false, | ||
+ | "hasNullableValue": false, | ||
+ | "maxElements": null, | ||
+ | "hasServerFiltration": false, | ||
+ | "id": 13, | ||
+ | "caption": "По возрастанию (по порядковому номеру)", | ||
+ | "enable": true, | ||
+ | "visible": true, | ||
+ | "hint": null, | ||
+ | "uiDataSource": null, | ||
+ | "doActionOnChangeValue": true, | ||
+ | "onAfterChangeValueConditionalActions": null, | ||
+ | "onAfterChangeValueByClientConditionalActions": null, | ||
+ | "rebuildDependentsObjectOnChange": true, | ||
+ | "enableRuleIds": [], | ||
+ | "visibleRuleIds": [], | ||
+ | "access": null, | ||
+ | "isValueChanged": true, | ||
+ | "expressionId": null, | ||
+ | "discriminator": "DictionarySourceEntry" | ||
+ | }, | ||
+ | { | ||
+ | "dataSourceId": 4, | ||
+ | "nameTemplate": "[2] (Сумма: [22])", | ||
+ | "displayAttribute": null, | ||
+ | "hasMultipleValue": false, | ||
+ | "hasNullableValue": false, | ||
+ | "maxElements": null, | ||
+ | "hasServerFiltration": false, | ||
+ | "id": 14, | ||
+ | "caption": "По убыванию (по сумме)", | ||
+ | "enable": true, | ||
+ | "visible": true, | ||
+ | "hint": null, | ||
+ | "uiDataSource": null, | ||
+ | "doActionOnChangeValue": true, | ||
+ | "onAfterChangeValueConditionalActions": null, | ||
+ | "onAfterChangeValueByClientConditionalActions": null, | ||
+ | "rebuildDependentsObjectOnChange": true, | ||
+ | "enableRuleIds": [], | ||
+ | "visibleRuleIds": [], | ||
+ | "access": null, | ||
+ | "isValueChanged": true, | ||
+ | "expressionId": null, | ||
+ | "discriminator": "DictionarySourceEntry" | ||
+ | }, | ||
+ | { | ||
+ | "dataSourceId": 5, | ||
+ | "nameTemplate": "[2] (Дата подписания: [23])", | ||
+ | "displayAttribute": null, | ||
+ | "hasMultipleValue": false, | ||
+ | "hasNullableValue": false, | ||
+ | "maxElements": null, | ||
+ | "hasServerFiltration": false, | ||
+ | "id": 15, | ||
+ | "caption": "По убыванию (по дата подписания)", | ||
+ | "enable": true, | ||
+ | "visible": true, | ||
+ | "hint": null, | ||
+ | "uiDataSource": null, | ||
+ | "doActionOnChangeValue": true, | ||
+ | "onAfterChangeValueConditionalActions": null, | ||
+ | "onAfterChangeValueByClientConditionalActions": null, | ||
+ | "rebuildDependentsObjectOnChange": true, | ||
+ | "enableRuleIds": [], | ||
+ | "visibleRuleIds": [], | ||
+ | "access": null, | ||
+ | "isValueChanged": true, | ||
+ | "expressionId": null, | ||
+ | "discriminator": "DictionarySourceEntry" | ||
+ | } | ||
+ | ], | ||
+ | "entryDataSources": [ | ||
+ | { | ||
+ | "dictionaryId": 67, | ||
+ | "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": 1, | ||
+ | "name": null, | ||
+ | "isReadOnly": true, | ||
+ | "dataEditRuleIds": [], | ||
+ | "beforeSaveDataActions": [], | ||
+ | "afterSaveDataActions": [], | ||
+ | "discriminator": "DictionaryDataSource" | ||
+ | }, | ||
+ | { | ||
+ | "dictionaryId": 67, | ||
+ | "hierarchyId": null, | ||
+ | "filter": null, | ||
+ | "sortingOptions": { | ||
+ | "attributes": [ | ||
+ | { | ||
+ | "attribute": { | ||
+ | "id": 2, | ||
+ | "discriminator": "OwnAttributeDefinitionDto" | ||
+ | }, | ||
+ | "sortDirection": "Ascending", | ||
+ | "nullsSortingMode": "PlaceFirst" | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | "groupingOptions": null, | ||
+ | "dictionaryAttributes": null, | ||
+ | "defaultValue": [], | ||
+ | "defaultValueExpressionId": null, | ||
+ | "parameterId": null, | ||
+ | "dictionarySourceSelectionMode": "None", | ||
+ | "dataSourceAttributesAdditionsSettings": [], | ||
+ | "externalFileStorageUrl": null, | ||
+ | "filePrefix": null, | ||
+ | "defaultNewElementSettings": null, | ||
+ | "id": 2, | ||
+ | "name": null, | ||
+ | "isReadOnly": true, | ||
+ | "dataEditRuleIds": [], | ||
+ | "beforeSaveDataActions": [], | ||
+ | "afterSaveDataActions": [], | ||
+ | "discriminator": "DictionaryDataSource" | ||
+ | }, | ||
+ | { | ||
+ | "dictionaryId": 67, | ||
+ | "hierarchyId": null, | ||
+ | "filter": null, | ||
+ | "sortingOptions": { | ||
+ | "attributes": [ | ||
+ | { | ||
+ | "attribute": { | ||
+ | "id": 21, | ||
+ | "discriminator": "OwnAttributeDefinitionDto" | ||
+ | }, | ||
+ | "sortDirection": "Ascending", | ||
+ | "nullsSortingMode": "PlaceFirst" | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | "groupingOptions": null, | ||
+ | "dictionaryAttributes": null, | ||
+ | "defaultValue": [], | ||
+ | "defaultValueExpressionId": null, | ||
+ | "parameterId": null, | ||
+ | "dictionarySourceSelectionMode": "None", | ||
+ | "dataSourceAttributesAdditionsSettings": [], | ||
+ | "externalFileStorageUrl": null, | ||
+ | "filePrefix": null, | ||
+ | "defaultNewElementSettings": null, | ||
+ | "id": 3, | ||
+ | "name": null, | ||
+ | "isReadOnly": true, | ||
+ | "dataEditRuleIds": [], | ||
+ | "beforeSaveDataActions": [], | ||
+ | "afterSaveDataActions": [], | ||
+ | "discriminator": "DictionaryDataSource" | ||
+ | }, | ||
+ | { | ||
+ | "dictionaryId": 67, | ||
+ | "hierarchyId": null, | ||
+ | "filter": null, | ||
+ | "sortingOptions": { | ||
+ | "attributes": [ | ||
+ | { | ||
+ | "attribute": { | ||
+ | "id": 22, | ||
+ | "discriminator": "OwnAttributeDefinitionDto" | ||
+ | }, | ||
+ | "sortDirection": "Descending", | ||
+ | "nullsSortingMode": "PlaceLast" | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | "groupingOptions": null, | ||
+ | "dictionaryAttributes": null, | ||
+ | "defaultValue": [], | ||
+ | "defaultValueExpressionId": null, | ||
+ | "parameterId": null, | ||
+ | "dictionarySourceSelectionMode": "None", | ||
+ | "dataSourceAttributesAdditionsSettings": [], | ||
+ | "externalFileStorageUrl": null, | ||
+ | "filePrefix": null, | ||
+ | "defaultNewElementSettings": null, | ||
+ | "id": 4, | ||
+ | "name": null, | ||
+ | "isReadOnly": true, | ||
+ | "dataEditRuleIds": [], | ||
+ | "beforeSaveDataActions": [], | ||
+ | "afterSaveDataActions": [], | ||
+ | "discriminator": "DictionaryDataSource" | ||
+ | }, | ||
+ | { | ||
+ | "dictionaryId": 67, | ||
+ | "hierarchyId": null, | ||
+ | "filter": null, | ||
+ | "sortingOptions": { | ||
+ | "attributes": [ | ||
+ | { | ||
+ | "attribute": { | ||
+ | "id": 23, | ||
+ | "discriminator": "OwnAttributeDefinitionDto" | ||
+ | }, | ||
+ | "sortDirection": "Descending", | ||
+ | "nullsSortingMode": "PlaceFirst" | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | "groupingOptions": null, | ||
+ | "dictionaryAttributes": null, | ||
+ | "defaultValue": [], | ||
+ | "defaultValueExpressionId": null, | ||
+ | "parameterId": null, | ||
+ | "dictionarySourceSelectionMode": "None", | ||
+ | "dataSourceAttributesAdditionsSettings": [], | ||
+ | "externalFileStorageUrl": null, | ||
+ | "filePrefix": null, | ||
+ | "defaultNewElementSettings": null, | ||
+ | "id": 5, | ||
+ | "name": null, | ||
+ | "isReadOnly": true, | ||
+ | "dataEditRuleIds": [], | ||
+ | "beforeSaveDataActions": [], | ||
+ | "afterSaveDataActions": [], | ||
+ | "discriminator": "DictionaryDataSource" | ||
+ | } | ||
+ | ], | ||
+ | "parameters": [], | ||
+ | "binaryConditionsRules": [], | ||
+ | "submitValidateRules": [], | ||
+ | "expressions": [], | ||
+ | "controlsValueCalculateRules": [], | ||
+ | "actions": [], | ||
+ | "conditionActionIdsOnOpen": [], | ||
+ | "conditionalActions": [], | ||
+ | "selectionSets": [], | ||
+ | "reportTemplates": [], | ||
+ | "useNewDependenciesBuilder": null | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | <br> | ||
+ | [[Файл:Сортировки в форме.jpg|600px|безрамки|без]] | ||
+ | === Пример использования в отчете=== | ||
+ | |||
+ | <br> | ||
+ | <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> | ||
+ | { | ||
+ | "workflowId": null, | ||
+ | "leftHeader": { | ||
+ | "useLazyDataLoadingStrategy": false, | ||
+ | "dictionaries": [ | ||
+ | { | ||
+ | "showDataIfAbsentFilter": null, | ||
+ | "coordAttribute": null, | ||
+ | "cartesianOptions": "Default", | ||
+ | "canSelectAttribute": null, | ||
+ | "groupingOptions": null, | ||
+ | "groupingMethod": "Default", | ||
+ | "sortingOptions": { | ||
+ | "attributes": [ | ||
+ | { | ||
+ | "attribute": { | ||
+ | "id": 2, | ||
+ | "discriminator": "OwnAttributeDefinitionDto" | ||
+ | }, | ||
+ | "sortDirection": "Ascending", | ||
+ | "nullsSortingMode": "PlaceFirst" | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | "rootElement": null, | ||
+ | "virtualElements": null, | ||
+ | "displayValueOptions": null, | ||
+ | "displayAttribute": null, | ||
+ | "dictionaryId": 67, | ||
+ | "filter": { | ||
+ | "value": null, | ||
+ | "skipIfValueNull": false, | ||
+ | "attributeId": null, | ||
+ | "attribute": { | ||
+ | "id": 1, | ||
+ | "discriminator": "OwnAttributeDefinitionDto" | ||
+ | }, | ||
+ | "conditionType": "AllElements", | ||
+ | "inversion": false, | ||
+ | "discriminator": "ValueConditionalDictionaryFilterDto" | ||
+ | }, | ||
+ | "selection": null, | ||
+ | "hierarchyId": null, | ||
+ | "limit": null | ||
+ | } | ||
+ | ], | ||
+ | "dictionaryAttributesLinks": [], | ||
+ | "specialFilters": { | ||
+ | "filtersByDataOptions": { | ||
+ | "filtersByData": [], | ||
+ | "needRestoreFullHierachy": false, | ||
+ | "joinOption": "Or", | ||
+ | "restoreElements": null | ||
+ | }, | ||
+ | "dictionaryAttributesLinks": [], | ||
+ | "needRestoreFullHierachy": false, | ||
+ | "restoreElements": null | ||
+ | }, | ||
+ | "isEditable": false | ||
+ | }, | ||
+ | "topHeader": { | ||
+ | "topHeaderItems": [ | ||
+ | { | ||
+ | "dictionaryAttributes": [ | ||
+ | { | ||
+ | "dictionaryId": 67, | ||
+ | "attribute": { | ||
+ | "id": 2, | ||
+ | "discriminator": "OwnAttributeDefinitionDto" | ||
+ | }, | ||
+ | "filter": null, | ||
+ | "sortingOptions": null, | ||
+ | "attributeId": null, | ||
+ | "displayAttributeType": "AttributeName", | ||
+ | "displayAttributeName": null, | ||
+ | "addFirstElementValue": false, | ||
+ | "overwriteNotFirstElementValues": true, | ||
+ | "delimiter": ", ", | ||
+ | "hideAttributeNameInHeader": false, | ||
+ | "headerNameDelimiter": " / ", | ||
+ | "duplicateValuesForNextDictionaries": true, | ||
+ | "duplicateValuesForNextRows": true, | ||
+ | "displayValueOptions": null, | ||
+ | "linkedAttributeSettings": null, | ||
+ | "skippedFilterAttributesByLink": [], | ||
+ | "filterOptionsByLinks": null | ||
+ | } | ||
+ | ], | ||
+ | "settings": null, | ||
+ | "hyperlinkOptions": null, | ||
+ | "hasImage": false, | ||
+ | "columnOptions": null, | ||
+ | "discriminator": "AttributeHeaderItemDto" | ||
+ | }, | ||
+ | { | ||
+ | "dictionaryAttributes": [ | ||
+ | { | ||
+ | "dictionaryId": 67, | ||
+ | "attribute": { | ||
+ | "id": 21, | ||
+ | "discriminator": "OwnAttributeDefinitionDto" | ||
+ | }, | ||
+ | "filter": null, | ||
+ | "sortingOptions": null, | ||
+ | "attributeId": null, | ||
+ | "displayAttributeType": "AttributeName", | ||
+ | "displayAttributeName": null, | ||
+ | "addFirstElementValue": false, | ||
+ | "overwriteNotFirstElementValues": true, | ||
+ | "delimiter": ", ", | ||
+ | "hideAttributeNameInHeader": false, | ||
+ | "headerNameDelimiter": " / ", | ||
+ | "duplicateValuesForNextDictionaries": true, | ||
+ | "duplicateValuesForNextRows": true, | ||
+ | "displayValueOptions": null, | ||
+ | "linkedAttributeSettings": null, | ||
+ | "skippedFilterAttributesByLink": [], | ||
+ | "filterOptionsByLinks": null | ||
+ | } | ||
+ | ], | ||
+ | "settings": null, | ||
+ | "hyperlinkOptions": null, | ||
+ | "hasImage": false, | ||
+ | "columnOptions": null, | ||
+ | "discriminator": "AttributeHeaderItemDto" | ||
+ | }, | ||
+ | { | ||
+ | "dictionaryAttributes": [ | ||
+ | { | ||
+ | "dictionaryId": 67, | ||
+ | "attribute": { | ||
+ | "id": 22, | ||
+ | "discriminator": "OwnAttributeDefinitionDto" | ||
+ | }, | ||
+ | "filter": null, | ||
+ | "sortingOptions": null, | ||
+ | "attributeId": null, | ||
+ | "displayAttributeType": "AttributeName", | ||
+ | "displayAttributeName": null, | ||
+ | "addFirstElementValue": false, | ||
+ | "overwriteNotFirstElementValues": true, | ||
+ | "delimiter": ", ", | ||
+ | "hideAttributeNameInHeader": false, | ||
+ | "headerNameDelimiter": " / ", | ||
+ | "duplicateValuesForNextDictionaries": true, | ||
+ | "duplicateValuesForNextRows": true, | ||
+ | "displayValueOptions": null, | ||
+ | "linkedAttributeSettings": null, | ||
+ | "skippedFilterAttributesByLink": [], | ||
+ | "filterOptionsByLinks": null | ||
+ | } | ||
+ | ], | ||
+ | "settings": null, | ||
+ | "hyperlinkOptions": null, | ||
+ | "hasImage": false, | ||
+ | "columnOptions": null, | ||
+ | "discriminator": "AttributeHeaderItemDto" | ||
+ | }, | ||
+ | { | ||
+ | "dictionaryAttributes": [ | ||
+ | { | ||
+ | "dictionaryId": 67, | ||
+ | "attribute": { | ||
+ | "id": 23, | ||
+ | "discriminator": "OwnAttributeDefinitionDto" | ||
+ | }, | ||
+ | "filter": null, | ||
+ | "sortingOptions": null, | ||
+ | "attributeId": null, | ||
+ | "displayAttributeType": "AttributeName", | ||
+ | "displayAttributeName": null, | ||
+ | "addFirstElementValue": false, | ||
+ | "overwriteNotFirstElementValues": true, | ||
+ | "delimiter": ", ", | ||
+ | "hideAttributeNameInHeader": false, | ||
+ | "headerNameDelimiter": " / ", | ||
+ | "duplicateValuesForNextDictionaries": true, | ||
+ | "duplicateValuesForNextRows": true, | ||
+ | "displayValueOptions": null, | ||
+ | "linkedAttributeSettings": null, | ||
+ | "skippedFilterAttributesByLink": [], | ||
+ | "filterOptionsByLinks": null | ||
+ | } | ||
+ | ], | ||
+ | "settings": null, | ||
+ | "hyperlinkOptions": null, | ||
+ | "hasImage": false, | ||
+ | "columnOptions": null, | ||
+ | "discriminator": "AttributeHeaderItemDto" | ||
+ | } | ||
+ | ], | ||
+ | "needFilterAttributesByLinks": false, | ||
+ | "enableFilterByLinks": false, | ||
+ | "numerationSettings": null, | ||
+ | "filterOptions": null | ||
+ | }, | ||
+ | "parameters": [], | ||
+ | "styles": [], | ||
+ | "styleOptions": [], | ||
+ | "stylesTemplate": [], | ||
+ | "filtersByDataOptions": null, | ||
+ | "view": null, | ||
+ | "externalExecutions": null, | ||
+ | "settings": null, | ||
+ | "code": "P_Сортировка элементов справочника (SortingOptions)", | ||
+ | "id": 82, | ||
+ | "name": "Сортировка элементов справочника (SortingOptions)" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | <br> | ||
+ | [[Файл:Сортировка в отчете.jpg|600px|безрамки|без]] |
Текущая версия на 13:14, 22 апреля 2021
Последовательное расположение в зависимости от выбранного атрибута справочника
1 "sortingOptions": {
2 "attributes": [
3 {
4 "attribute": {
5 "id": 1,
6 "discriminator": "OwnAttributeDefinitionDto"
7 },
8 "sortDirection": "Descending",
9 "nullsSortingMode": "PlaceFirst"
10 }
11 ]
12 }
Значение | Описание |
---|---|
attribute | описание пути до атрибута, по которому будет производиться сортировка |
sortDirection | Направление по убыванию / по возрастанию ("Descending" / "Ascending") |
nullsSortingMode | нулевые значения в начале / в конце ("PlaceFirst" / "PlaceLast") |
Содержание
Особенности использования
Сортировка по атрибуту справочника с типом "числовой, дробный" происходит по математической логике упорядочивания чисел (1 < 2 < 10).
Сортировка по атрибуту справочника с типом "дата" происходит в соответствии с порядком дней в календаре.
Сортировка по текстовому атрибуту происходит по каждому символу. Порядок по возрастанию, в рамках которого происходит упорядочивание, каждого символа в названии: символы ("-", "!" и т.д.), цифры (от 0 до 9), буквы русские (от А до Я), буквы латинского алфавита ( от A до Z)
Пример использования в форме и отчете
Кейс: исходный справочник "Договоры" имеет следующую структуру и типы данных в атрибутах
Идентификатор | Наименование | Порядковый номер | Сумма по договору | Дата подписания |
---|---|---|---|---|
1 | 2 | 21 | 22 | 23 |
Числовой | Текстовый | Числовой | Дробный | Дата |
1 | 123 | 1 | 100,00 | 22.04.2021 |
2 | АБ-1-11 | 10 | 100,12 | 04.03.2021 |
3 | 1 | 2 | 98,00 | 22.04.2021 |
4 | 11 | 21 | 1,00 | |
5 | -11-АБ | 3 | 11,00 | 05.08.2019 |
6 | 2 | 11 | 14.05.2020 |
При сортировке по возрастанию по атр. "Наименование" (id=2) порядок будет следующий:
Идентификатор | Наименование | Порядковый номер | Сумма по договору | Дата подписания |
---|---|---|---|---|
1 | 2 | 21 | 22 | 23 |
Числовой | Текстовый | Числовой | Дробный | Дата |
5 | -11-АБ | 3 | 11,00 | 05.08.2019 |
3 | 1 | 2 | 98,00 | 22.04.2021 |
4 | 11 | 21 | 1,00 | |
1 | 123 | 1 | 100,00 | 22.04.2021 |
6 | 2 | 11 | 14.05.2020 | |
2 | АБ-1-11 | 10 | 100,12 | 04.03.2021 |
При сортировке по возрастанию по атр. "Порядковый номер" (id=21) порядок будет следующий:
Идентификатор | Наименование | Порядковый номер | Сумма по договору | Дата подписания |
---|---|---|---|---|
1 | 2 | 21 | 22 | 23 |
Числовой | Текстовый | Числовой | Дробный | Дата |
1 | 123 | 1 | 100,00 | 22.04.2021 |
3 | 1 | 2 | 98,00 | 22.04.2021 |
5 | -11-АБ | 3 | 11,00 | 05.08.2019 |
2 | АБ-1-11 | 10 | 100,12 | 04.03.2021 |
6 | 2 | 11 | 14.05.2020 | |
4 | 11 | 21 | 1,00 |
При сортировке по убыванию по атр. "Сумма по договору" (id=22) и расположению пустых атрибутов в конце списка порядок будет следующий:
Идентификатор | Наименование | Порядковый номер | Сумма по договору | Дата подписания |
---|---|---|---|---|
1 | 2 | 21 | 22 | 23 |
Числовой | Текстовый | Числовой | Дробный | Дата |
2 | АБ-1-11 | 10 | 100,12 | 04.03.2021 |
1 | 123 | 1 | 100,00 | 22.04.2021 |
3 | 1 | 2 | 98,00 | 22.04.2021 |
5 | -11-АБ | 3 | 11,00 | 05.08.2019 |
4 | 11 | 21 | 1,00 | |
6 | 2 | 11 | 14.05.2020 |
При сортировке по убыванию по атр. "Дата подписания" (id=22) и расположению пустых атрибутов в начале списка порядок будет следующий:
Идентификатор | Наименование | Порядковый номер | Сумма по договору | Дата подписания |
---|---|---|---|---|
1 | 2 | 21 | 22 | 23 |
Числовой | Текстовый | Числовой | Дробный | Дата |
4 | 11 | 21 | 1,00 | |
1 | 123 | 1 | 100,00 | 22.04.2021 |
3 | 1 | 2 | 98,00 | 22.04.2021 |
2 | АБ-1-11 | 10 | 100,12 | 04.03.2021 |
6 | 2 | 11 | 14.05.2020 | |
5 | -11-АБ | 3 | 11,00 | 05.08.2019 |
Пример использования в форме
Пример использования в отчете