Платформа 3V/Формы/Компоненты/Основные/Кнопка/Кнопка 'Сохранить': различия между версиями
(→Пример) |
|||
Строка 41: | Строка 41: | ||
===Пример=== | ===Пример=== | ||
Имеется справочник контрагентов, ниже представлена серверная карточка для добавления наименования нового контрагента.<br> | Имеется справочник контрагентов, ниже представлена серверная карточка для добавления наименования нового контрагента.<br> | ||
+ | 1. Добавлен контрол кнопка Сохранить id=100. | ||
+ | |||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "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" | ||
+ | } | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | 2. Кнопка Сохранить будет сохранять введенное в строку значение в источник - справочник id=3. | ||
+ | |||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | |||
+ | "dictionaryId": 47, | ||
+ | "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": "Список контрагентов", | ||
+ | "isReadOnly": false, | ||
+ | "dataEditRuleIds": [], | ||
+ | "beforeSaveDataActions": [], | ||
+ | "afterSaveDataActions": [], | ||
+ | "discriminator": "DictionaryDataSource" | ||
+ | |||
+ | |||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
Здесь два контрола - кнопка Сохранить и строка для ввода нового наименования. <br> | Здесь два контрола - кнопка Сохранить и строка для ввода нового наименования. <br> | ||
Источник один - справочник в который записываются новые данные, важно, что его свойство isReadOnly имеет значение false, поэтому кнопка типа ButtonSubmitSourceEntry автоматически записывает все введенные данные.<br> | Источник один - справочник в который записываются новые данные, важно, что его свойство isReadOnly имеет значение false, поэтому кнопка типа ButtonSubmitSourceEntry автоматически записывает все введенные данные.<br> | ||
Строка 103: | Строка 165: | ||
}, | }, | ||
"attributeId": null, | "attributeId": null, | ||
− | "sourceId": | + | "sourceId": 3, |
"discriminator": "UiDataSourceDictionary" | "discriminator": "UiDataSourceDictionary" | ||
}, | }, | ||
Строка 133: | Строка 195: | ||
"filePrefix": null, | "filePrefix": null, | ||
"defaultNewElementSettings": null, | "defaultNewElementSettings": null, | ||
− | "id": | + | "id": 3, |
"name": "Список контрагентов", | "name": "Список контрагентов", | ||
"isReadOnly": false, | "isReadOnly": false, |
Версия 13:08, 18 июня 2021
Содержание
!!!СТРАНИЦА НАХОДИТСЯ В СТАДИИ РАЗРАБОТКИ!!!
Кнопку "Сохранить" можно реализовать двумя способами:
1. кнопка ButtonSubmitSourceEntryDto,
2. кнопка CustomButtonEntry.
Обе кнопки могут содержать дополнительные действия помимо сохранения. Основным отличием является порядок сохранения данных - в кнопке ButtonSubmitSourceEntryDto нельзя управлять порядком сохранения.
ButtonSubmitSourceEntryDto
Кнопка ButtonSubmitSourceEntryDto сохраняет все значения источников, у которых свойство readOnly: false. Таким образом сохраняется все введенные в источники значения.
1 {
2 "confirmation" {...},
3 "nullable": true
4 "submitRuleIds": [],
5 "conditionalActions": [],
6 "onBeforeClickConditionalActions": [],
7 "discriminator": "ButtonSubmitSourceEntry"
8 }
Описание свойств элемента
Свойство | Описание |
---|---|
confirmation | |
nullable | |
submitRuleIds | |
conditionalActions | |
onBeforeClickConditionalActions | |
discriminator | ButtonSubmitSourceEntry |
Пример
Имеется справочник контрагентов, ниже представлена серверная карточка для добавления наименования нового контрагента.
1. Добавлен контрол кнопка Сохранить id=100.
1 {
2 "actionConfirmation": {
3 "message": null,
4 "conditionId": null
5 },
6 "controlsValueCalculateRulesIds": [],
7 "conditionalActions": [],
8 "onBeforeClickConditionalActions": [],
9 "submitRuleIds": [],
10 "id": 100,
11 "caption": "Сохранить",
12 "enable": true,
13 "visible": true,
14 "hint": null,
15 "uiDataSource": null,
16 "doActionOnChangeValue": true,
17 "onAfterChangeValueConditionalActions": null,
18 "onAfterChangeValueByClientConditionalActions": null,
19 "rebuildDependentsObjectOnChange": false,
20 "enableRuleIds": [],
21 "visibleRuleIds": [],
22 "access": null,
23 "isValueChanged": false,
24 "expressionId": null,
25 "discriminator": "ButtonSubmitSourceEntry"
26 }
2. Кнопка Сохранить будет сохранять введенное в строку значение в источник - справочник id=3.
1 "dictionaryId": 47,
2 "hierarchyId": null,
3 "filter": null,
4 "sortingOptions": null,
5 "groupingOptions": null,
6 "dictionaryAttributes": null,
7 "defaultValue": [],
8 "defaultValueExpressionId": null,
9 "parameterId": null,
10 "dictionarySourceSelectionMode": "None",
11 "dataSourceAttributesAdditionsSettings": [],
12 "externalFileStorageUrl": null,
13 "filePrefix": null,
14 "defaultNewElementSettings": null,
15 "id": 1,
16 "name": "Список контрагентов",
17 "isReadOnly": false,
18 "dataEditRuleIds": [],
19 "beforeSaveDataActions": [],
20 "afterSaveDataActions": [],
21 "discriminator": "DictionaryDataSource"
Здесь два контрола - кнопка Сохранить и строка для ввода нового наименования.
Источник один - справочник в который записываются новые данные, важно, что его свойство isReadOnly имеет значение false, поэтому кнопка типа ButtonSubmitSourceEntry автоматически записывает все введенные данные.
1 {
2 "id": 315,
3 "name": "Кнопка сохранить (ButtonSubmitSourceEntry)",
4 "description": null,
5 "title": "Пример кнопки Сохранить ButtonSubmitSourceEntry",
6 "entrySettings": null,
7 "uiSources": [
8 {
9 "actionConfirmation": {
10 "message": null,
11 "conditionId": null
12 },
13 "controlsValueCalculateRulesIds": [],
14 "conditionalActions": [],
15 "onBeforeClickConditionalActions": [],
16 "submitRuleIds": [],
17 "id": 100,
18 "caption": "Сохранить",
19 "enable": true,
20 "visible": true,
21 "hint": null,
22 "uiDataSource": null,
23 "doActionOnChangeValue": true,
24 "onAfterChangeValueConditionalActions": null,
25 "onAfterChangeValueByClientConditionalActions": null,
26 "rebuildDependentsObjectOnChange": false,
27 "enableRuleIds": [],
28 "visibleRuleIds": [],
29 "access": null,
30 "isValueChanged": false,
31 "expressionId": null,
32 "discriminator": "ButtonSubmitSourceEntry"
33 },
34 {
35 "trimSpaces": false,
36 "defaultValue": null,
37 "value": null,
38 "id": 1,
39 "caption": "Новый контрагент",
40 "enable": true,
41 "visible": true,
42 "hint": null,
43 "uiDataSource": {
44 "attribute": {
45 "id": 2,
46 "discriminator": "OwnAttributeDefinitionDto"
47 },
48 "attributeId": null,
49 "sourceId": 3,
50 "discriminator": "UiDataSourceDictionary"
51 },
52 "doActionOnChangeValue": false,
53 "onAfterChangeValueConditionalActions": null,
54 "onAfterChangeValueByClientConditionalActions": null,
55 "enableRuleIds": [],
56 "visibleRuleIds": [],
57 "access": null,
58 "isValueChanged": false,
59 "expressionId": null,
60 "discriminator": "StringSourceEntry"
61 }
62 ],
63 "entryDataSources": [
64 {
65 "dictionaryId": 47,
66 "hierarchyId": null,
67 "filter": null,
68 "sortingOptions": null,
69 "groupingOptions": null,
70 "dictionaryAttributes": null,
71 "defaultValue": [],
72 "defaultValueExpressionId": null,
73 "parameterId": null,
74 "dictionarySourceSelectionMode": "None",
75 "dataSourceAttributesAdditionsSettings": [],
76 "externalFileStorageUrl": null,
77 "filePrefix": null,
78 "defaultNewElementSettings": null,
79 "id": 3,
80 "name": "Список контрагентов",
81 "isReadOnly": false,
82 "dataEditRuleIds": [],
83 "beforeSaveDataActions": [],
84 "afterSaveDataActions": [],
85 "discriminator": "DictionaryDataSource"
86 }
87 ],
88 "parameters": [],
89 "binaryConditionsRules": [],
90 "submitValidateRules": [],
91 "expressions": [],
92 "controlsValueCalculateRules": [],
93 "actions": [],
94 "conditionActionIdsOnOpen": [],
95 "conditionalActions": [],
96 "selectionSets": [],
97 "reportTemplates": [],
98 "useNewDependenciesBuilder": null
99 }
CustomButtonEntry
Кнопка CustomButtonEntry требует добавить действие, которое сохраняет добавленный элемент в источнике данных.
1 {
2 "id": 1,
3 "caption": "Сохранить",
4 "nullable": true,
5 "enable": true,
6 "visible": true,
7 "hint": null,
8 "nullable": true
9 "uiDataSource": null,
10 "doActionOnChangeValue": true,
11 "onAfterChangeValueConditionalActions": null,
12 "onAfterChangeValueActions": null,
13 "onAfterChangeValueByClientConditionalActions": null,
14 "onAfterChangeValueByClientActions": null,
15 "rebuildDependentsObjectOnChange": true,
16 "enableExpressionIds": [],
17 "visibleExpressionIds": [],
18 "isValueChanged" boolean
19 "expressionId": [],
20 "controlsValueCalculateRulesIds"[],
21 "actions" [ 51, 50]
22 "onBeforeClickConditionalActions": [],
23 "onBeforeClickActions": [],
24 "submitRuleIds": [],
25 "discriminator": CustomButtonEntry,
26 }