Платформа 3V/Формы/Источники данных/Отчет/Параметры/На справочнике - объекте репозитория (EntryExpressionByDictionaryRequestDto): различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску

Версия 11:07, 16 сентября 2021

Параметр, который возращает коллекцию атрибутов элементов справочника - объекта репозитория, который может не являться источником серверной карточки. Позволяет использовать справочники только в момент обращения к нему (по действиям на кнопку или вычислению выражений), а не постоянно загружать и обновлять, как при использовании в качестве источника карточки. Параметр имеет следующую структуру:

 1 {
 2 	"id": 1,
 3 	"allowMultipleValues": false,
 4 	"discriminator": "EntryExpressionByDictionaryRequestDto",
 5 	"dictionaryId": 536,
 6 	"attributeId": 1,
 7 	"filter": {
 8 		...
 9 	}
10 }

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

Свойство Описание
id Идентификатор параметра
allowMultipleValues Флаг об получении результата в виде коллекции значений (true/false)
discriminator EntryExpressionByDictionaryRequestDto
dictionaryId Идентификатор справочника - объекта репозитория
attributeId Идентификатор атрибута используемого справочника
filter Фильтры, которые буду применяться для выборки из справочника

Пример использования в качестве параметра выражения

При необходимости вычисления некоторого выражения на основании справочника - объекта репозитория, используется соответствующий параметр EntryExpressionByDictionaryRequestDto

Кейс: Собрать строковый элемент управления "Наименования договоров (строка)" из наименований договоров c типом "Договор купли-продажи" (фильтр по атрибуту "Тип договора"(id=21) = 3), которые есть в справочнике "Договоры" (id=536) без добавления источника в карточку

JSON серверной карточки
 1 {
 2 	"id": 123,
 3 	"name": "Использование в выражении параметра EntryExpressionByDictionaryRequestDto",
 4 	"description": null,
 5 	"title": null,
 6 	"entrySettings": null,
 7 	"uiSources": [],
 8 	"entryDataSources": [],
 9 	"parameters": [],
10 	"binaryConditionsRules": [],
11 	"submitValidateRules": [],
12 	"expressions": [
13 		{
14 			"id": 1002,
15 			"expression": "Concatenate(', ', [1])",
16 			"returnFirstParameterValue": false,
17 			"parameters": [
18 				{
19 					"id": 1,
20 					"allowMultipleValues": true,
21 					"discriminator": "EntryExpressionByDictionaryRequestDto",
22 					"dictionaryId": 536,
23 					"attributeId": 2,
24 					"filter": {
25 						"value": [
26 							3  
27 						],
28 						"attributeId": 21,
29 						"attribute": null,
30 						"conditionType": "AttributeInCollection",
31 						"inversion": false,
32 						"conditionId": null,
33 						"discriminator": "ValueConditionalDictionaryFilterDto"
34 					}
35 				}
36 			]
37 		}
38 	],
39 	"controlsValueCalculateRules": [],
40 	"actions": [],
41 	"conditionActionIdsOnOpen": [],
42 	"conditionalActions": [],
43 	"selectionSets": [],
44 	"reportTemplates": [],
45 	"useNewDependenciesBuilder": null
46 }

Пример использования в качестве параметра отчета

При необходимости передать в качестве параметра отчета элементы справочника - объекта репозитория без добавления источника, используется соответствующий параметр EntryExpressionByDictionaryRequestDto

Кейс: Отчет отображает реестр компаний с типом "Публичное акционерное общество", перечень компаний приходит в параметр отчета (id=1) на основании справочника "Компании" без возможности менять перечень пользователем. Также должна учитываться фильтрация элементов по атр."Тип контрагента" (id=21) = "Публичное акционерное общество" (id=3).

JSON серверной карточки
 1 {
 2 	"id": 123,
 3 	"title": "Использование в отчете параметра EntryExpressionByDictionaryRequestDto",
 4 	"description": "",
 5 	"uiSources": [
 6 		{
 7 			"pivotSourceId": 101,
 8 			"doActionOnChangeFocusedCell": false,
 9 			"doActionOnChangeCellValue": false,
10 			"id": 1,
11 			"caption": null,
12 			"enable": false,
13 			"visible": true,
14 			"hint": null,
15 			"caption": "Реестр ПАО",
16 			"uiDataSource": null,
17 			"doActionOnChangeValue": false,
18 			"onAfterChangeValueConditionalActions": null,
19 			"onAfterChangeValueByClientConditionalActions": null,
20 			"rebuildDependentsObjectOnChange": true,
21 			"enableRuleIds": [],
22 			"visibleRuleIds": [],
23 			"access": null,
24 			"isValueChanged": false,
25 			"expressionId": null,
26 			"discriminator": "PivotSourceEntry"
27 		}
28 	],
29 	"entryDataSources": [
30 		{
31 			"pivotId": 31000,
32 			"parameters": [
33 				{
34 					"id": 1,
35 					"allowMultipleValues": true,
36 					"discriminator": "EntryExpressionByDictionaryRequestDto",
37 					"dictionaryId": 536,
38 					"attributeId": 1,
39 					"filter": {
40 						"value": [
41 							3
42 						],
43 						"attributeId": 21,
44 						"conditionType": "AttributeInCollection",
45 						"inversion": false,
46 						"conditionId": null,
47 						"discriminator": "ValueConditionalDictionaryFilterDto"
48 					}
49 				}
50 			],
51 			"focusOnFirstCell": true,
52 			"id": 101,
53 			"name": "Реестр ПАО",
54 			"isReadOnly": true,
55 			"dataEditRuleIds": [],
56 			"beforeSaveDataActions": [],
57 			"afterSaveDataActions": [],
58 			"discriminator": "PivotDataSource"
59 		}
60 	],
61 	"parameters": [],
62 	"binaryConditionsRules": [],
63 	"expressions": [],
64 	"actions": [],
65 	"conditionalActions": [],
66 	"conditionActionIdsOnOpen": []
67 }