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

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
 
Строка 33: Строка 33:
 
| filter || [[Платформа_3V/Формы/Источники_данных/Справочник/Фильтрация|'''Фильтры''']], которые буду применяться для выборки из справочника  
 
| filter || [[Платформа_3V/Формы/Источники_данных/Справочник/Фильтрация|'''Фильтры''']], которые буду применяться для выборки из справочника  
 
|}
 
|}
 
==Пример использования в качестве параметра выражения==
 
При необходимости вычисления некоторого выражения на основании справочника - объекта репозитория, используется соответствующий параметр EntryExpressionByDictionaryRequestDto
 
 
Кейс: Собрать строковый элемент управления "Наименования договоров (строка)" из наименований договоров c типом "Договор купли-продажи" (фильтр по атрибуту "Тип договора"(id=21) = 3), которые есть в справочнике "Договоры" (id=536) без добавления источника в карточку
 
 
<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": 123,
 
"name": "Использование в выражении параметра EntryExpressionByDictionaryRequestDto",
 
"description": null,
 
"title": null,
 
"entrySettings": null,
 
"uiSources": [],
 
"entryDataSources": [],
 
"parameters": [],
 
"binaryConditionsRules": [],
 
"submitValidateRules": [],
 
"expressions": [
 
{
 
"id": 1002,
 
"expression": "Concatenate(', ', [1])",
 
"returnFirstParameterValue": false,
 
"parameters": [
 
{
 
"id": 1,
 
"allowMultipleValues": true,
 
"discriminator": "EntryExpressionByDictionaryRequestDto",
 
"dictionaryId": 536,
 
"attributeId": 2,
 
"filter": {
 
"value": [
 
 
],
 
"attributeId": 21,
 
"attribute": null,
 
"conditionType": "AttributeInCollection",
 
"inversion": false,
 
"conditionId": null,
 
"discriminator": "ValueConditionalDictionaryFilterDto"
 
}
 
}
 
]
 
}
 
],
 
"controlsValueCalculateRules": [],
 
"actions": [],
 
"conditionActionIdsOnOpen": [],
 
"conditionalActions": [],
 
"selectionSets": [],
 
"reportTemplates": [],
 
"useNewDependenciesBuilder": null
 
}
 
</syntaxhighlight>
 
</div></div>
 
  
 
==Пример использования в качестве параметра отчета==
 
==Пример использования в качестве параметра отчета==

Текущая версия на 11:58, 17 сентября 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

Кейс: Отчет отображает реестр компаний с типом "Публичное акционерное общество", перечень компаний приходит в параметр отчета (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 }