Платформа 3V/Формы/Действия/Расчет элемента: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
(Новая страница: «Параметр, который вычисляет и устанавливает значение для указанного элемента управлени...»)
 
Строка 25: Строка 25:
  
 
==Пример использования(вычисление периода)==
 
==Пример использования(вычисление периода)==
При необходимости вычисления некоторого выражения и установки его результата для определённого элемента, используется соответствующий параметр CalculateControlValueAction
 
 
 
Кейс: Вычислить длительность периода по датам начала и конца периода.
 
Кейс: Вычислить длительность периода по датам начала и конца периода.
  

Версия 09:49, 16 апреля 2021

Параметр, который вычисляет и устанавливает значение для указанного элемента управления, имеет следующую структуру:

1 {
2       "id": 111,
3       "controlId": 111,
4       "expressionId": 111,
5       "discriminator": "CalculateControlValueAction"
6 }

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

Свойство Описание
id Идентификатор параметра
controlId Идентификатор элемента управления
expressionId Идентификатор выражения
discriminator CalculateControlValueAction

Пример использования(вычисление периода)

Кейс: Вычислить длительность периода по датам начала и конца периода.

В отдельном выражении из конечной даты вычесть начальную и вывести ее в контрол.

JSON серверной карточки
  1 {
  2   "id": 373,
  3   "title": "",
  4   "description": "",
  5   "uiSources": [
  6     {
  7       "submitRuleIds": [],
  8       "actionConfirmation": {
  9         "message": null,
 10         "conditionId": null
 11       },
 12       "controlsValueCalculateRulesIds": [],
 13       "conditionalActions": [
 14         222
 15       ],
 16       "onBeforeClickConditionalActions": [],
 17       "id": 206100,
 18       "caption": "Кнопка",
 19       "enable": true,
 20       "visible": true,
 21       "hint": null,
 22       "uiDataSource": null,
 23       "doActionOnChangeValue": false,
 24       "onAfterChangeValueConditionalActions": null,
 25       "onAfterChangeValueByClientConditionalActions": null,
 26       "enableRuleIds": [],
 27       "visibleRuleIds": [],
 28       "access": {
 29         "read": {
 30           "roles": [],
 31           "inversion": false,
 32           "default": true
 33         },
 34         "edit": {
 35           "roles": [],
 36           "inversion": false,
 37           "default": true
 38         }
 39       },
 40       "isValueChanged": false,
 41       "expressionId": null,
 42       "discriminator": "CustomButtonEntry"
 43     },
 44     {
 45       "id": 222,
 46       "caption": "default",
 47       "enable": true,
 48       "visible": true,
 49       "uiDataSource": null,
 50       "discriminator": "StringSourceEntry",
 51       "doActionOnChangeValue": false
 52     },
 53     {
 54       "defaultValue": null,
 55       "value": null,
 56       "id": 21,
 57       "caption": "Длительность",
 58       "enable": true,
 59       "visible": true,
 60       "hint": null,
 61       "doActionOnChangeValue": false,
 62       "onAfterChangeValueConditionalActions": null,
 63       "onAfterChangeValueByClientConditionalActions": null,
 64       "visibleRuleIds": [],
 65       "isValueChanged": false,
 66       "expressionId": null,
 67       "discriminator": "DateTimeSourceEntry"
 68     },
 69     {
 70       "defaultValue": null,
 71       "value": null,
 72       "id": 22,
 73       "caption": "Длительность",
 74       "enable": true,
 75       "visible": true,
 76       "hint": null,
 77       "doActionOnChangeValue": false,
 78       "onAfterChangeValueConditionalActions": null,
 79       "onAfterChangeValueByClientConditionalActions": null,
 80       "visibleRuleIds": [],
 81       "isValueChanged": false,
 82       "expressionId": null,
 83       "discriminator": "DateTimeSourceEntry"
 84     }
 85   ],
 86   "entryDataSources": [
 87     {
 88       "dictionaryId": 368,
 89       "groupingOptions": null,
 90       "dictionaryAttributes": null,
 91       "defaultValue": [],
 92       "filter": null,
 93       "defaultValueExpressionId": null,
 94       "parameterId": null,
 95       "dictionarySourceSelectionMode": "None",
 96       "dataSourceAttributesAdditionsSettings": [],
 97       "id": 368,
 98       "name": "Data",
 99       "isReadOnly": false,
100       "dataEditRuleIds": [],
101       "beforeSaveDataActions": [],
102       "afterSaveDataActions": [],
103       "discriminator": "DictionaryDataSource"
104     }
105   ],
106   "parameters": null,
107   "binaryConditionsRules": [],
108   "expressions": [
109     {
110       "id": 222,
111       "expression": "TrimTime([22])-TrimTime([21])",
112       "returnFirstParameterValue": false,
113       "parameters": [
114         {
115           "uiSourceId": 22,
116           "id": 22,
117           "discriminator": "EntryExpressionUiSourceParameterDto"
118         },
119         {
120           "uiSourceId": 21,
121           "id": 21,
122           "discriminator": "EntryExpressionUiSourceParameterDto"
123         }
124       ],
125       "comment": null
126     }
127   ],
128   "actions": [
129     {
130       "id": 222,
131       "controlId": 222,
132       "expressionId": 222,
133       "discriminator": "CalculateControlValueAction"
134     }
135   ],
136   "conditionalActions": [
137     {
138       "id": 222,
139       "binaryConditionRuleId": null,
140       "actions": [
141         222
142       ]
143     }
144   ],
145   "conditionActionIdsOnOpen": null
146 }

Пример использования(вывод строки)

Кейс: Вывод строки при нажатии на кнопку.

Строка добавляется в выражение и выводится с помощью CalculateControlValueAction.

JSON серверной карточки
 1 {
 2   "id": 370,
 3   "title": "",
 4   "description": "",
 5   "uiSources": [
 6     {
 7       "submitRuleIds": [],
 8       "actionConfirmation": {
 9         "message": null,
10         "conditionId": null
11       },
12       "controlsValueCalculateRulesIds": [],
13       "conditionalActions": [
14         111
15       ],
16       "onBeforeClickConditionalActions": [],
17       "id": 206100,
18       "caption": "Кнопка",
19       "enable": true,
20       "visible": true,
21       "hint": null,
22       "uiDataSource": null,
23       "doActionOnChangeValue": false,
24       "onAfterChangeValueConditionalActions": null,
25       "onAfterChangeValueByClientConditionalActions": null,
26       "enableRuleIds": [],
27       "visibleRuleIds": [],
28       "access": {
29         "read": {
30           "roles": [],
31           "inversion": false,
32           "default": true
33         },
34         "edit": {
35           "roles": [],
36           "inversion": false,
37           "default": true
38         }
39       },
40       "isValueChanged": false,
41       "expressionId": null,
42       "discriminator": "CustomButtonEntry"
43     },
44     {
45       "id": 111,
46       "caption": "default",
47       "enable": true,
48       "visible": true,
49       "hint": null,
50       "doActionOnChangeValue": false,
51       "onAfterChangeValueConditionalActions": null,
52       "onAfterChangeValueByClientConditionalActions": null,
53       "enableRuleIds": [],
54       "visibleRuleIds": [],
55       "isValueChanged": false,
56       "expressionId": null,
57       "discriminator": "StringSourceEntry"
58     }
59   ],
60   "entryDataSources": [],
61   "parameters": null,
62   "binaryConditionsRules": [],
63   "expressions": [
64     {
65       "id": 111,
66       "expression": "[1]",
67       "returnFirstParameterValue": false,
68       "parameters": [
69         {
70           "id": 1,
71           "allowMultipleValues": false,
72           "discriminator": "EntryExpressionConstantParameterDto",
73           "value": "Строка"
74         }
75       ],
76       "comment": null
77     }
78   ],
79   "actions": [
80     {
81       "id": 111,
82       "controlId": 111,
83       "expressionId": 111,
84       "discriminator": "CalculateControlValueAction"
85     }
86   ],
87   "conditionalActions": [
88     {
89       "id": 111,
90       "binaryConditionRuleId": null,
91       "actions": [
92         111
93       ]
94     }
95   ],
96   "conditionActionIdsOnOpen": null
97 }