Платформа 3V/Формы/Компоненты/Основные/Кнопка/Кнопка 'Сохранить': различия между версиями
Строка 234: | Строка 234: | ||
</div></div> | </div></div> | ||
− | 2. В раздел uiSources добавляем элементы управления кнопка CustomButtonEntry. | + | 2. В раздел uiSources добавляем элементы управления кнопка CustomButtonEntry. В Actions в данном примере три действия, одно из которых - сохранение в источнике. |
<syntaxhighlight lang="JSON" line> | <syntaxhighlight lang="JSON" line> | ||
+ | "uiSources": [ | ||
+ | { | ||
+ | ..., | ||
+ | |||
+ | "Actions": [ | ||
+ | 222, | ||
+ | 111, | ||
+ | 333 | ||
+ | ], | ||
+ | "id": 200, | ||
+ | "caption": "Сохранить", | ||
+ | |||
+ | ... | ||
+ | |||
+ | "discriminator": "CustomButtonEntry" | ||
+ | }, | ||
+ | |||
+ | {...} | ||
+ | ] | ||
Версия 10:08, 1 июля 2021
Содержание
!!!СТРАНИЦА НАХОДИТСЯ В СТАДИИ РАЗРАБОТКИ!!!
Кнопку "Сохранить" можно реализовать двумя способами:
1. Кнопка ButtonSubmitSourceEntryDto,
2. Кнопка CustomButtonEntry.
Обе кнопки могут содержать дополнительные действия помимо сохранения.
При этом кнопка ButtonSubmitSourceEntryDto сохраняет данные автоматически и выполняет дополнительные действия (при наличии).
Кнопке CustomButtonEntry необходимо прописать действие, которое сохраняет добавленный элемент в источнике данных, но при этом в ней можно выполнить дополнительные действия до сохранения.
Сравнение кнопок
Свойство / Тип кнопки | ButtonSubmitSourceEntryDto | CustomButtonEntry |
---|---|---|
Actions | Может быть пустым | Обязательно должно содержать действие, которое сохраняет добавленный элемент в источнике данных |
Управлять порядком выполнения действий | Нельзя | Можно |
Кнопка ButtonSubmitSourceEntryDto сохраняет данные автоматически и не требует добавлять действие, которое сохранит данные, то есть раздел Actions у нее может быть пустой.
Обе кнопки могут содержать дополнительные действия помимо сохранения.
Основным отличием является порядок сохранения данных - в кнопке ButtonSubmitSourceEntryDto нельзя управлять порядком сохранения.
ButtonSubmitSourceEntryDto
1. В раздел uiSources добавляем элемент управления (строка в данном примере), значения которого будет записывать кнопка.
1 "uiSources": [
2 {...},
3 {
4 ...
5
6 "id": 1,
7 "uiDataSource": {
8 "attribute": {
9 "id": 2,
10 "discriminator": "OwnAttributeDefinitionDto"
11 },
12 "attributeId": null,
13 "sourceId": 1,
14 "discriminator": "UiDataSourceDictionary"
15 },
16 ...
17
18 "discriminator": "StringSourceEntry"
19 }
20 ]
2. В раздел uiSources добавляем элементы управления кнопка ButtonSubmitSourceEntry. Свойство Actions в данном примере пустое, дополнительных действий нет.
1 "uiSources": [
2 {
3 "actionConfirmation": { ... },
4 "Actions": [],
5 "onBeforeClickConditionalActions": [],
6 "submitRuleIds": [],
7 "id": 100,
8 "caption": "Сохранить",
9
10 ...
11
12 "discriminator": "ButtonSubmitSourceEntry"
13 },
14 {...}
15 ]
3. В раздел entryDataSources добавляем источник (справочник в данном примере), в который записываются данные.
Важно, чтобы свойство "isReadOnly" источника (источников), куда записываются данные, принимало значение false.
1 "entryDataSources": [
2 {
3 "dictionaryId": 47,
4
5 ...
6
7 "id": 1,
8 "name": "Список контрагентов",
9 "isReadOnly": false,
10
11 ...
12
13 "discriminator": "DictionaryDataSource"
14 }
15 ],
Кнопка сохранит все введенные данные автоматически.
Пример
Кейс: Добавление нового элемента справочника.
Кнопка Сохранить(контрол id=100) сохрает введенное в строку значение в справочник (источник id=3).
CustomButtonEntry
Кнопка CustomButtonEntry требует добавить действие, которое сохраняет добавленный элемент в источнике данных.
Действия, "повешанные" на кнопку, будут выполняться последовательно.
1. В раздел uiSources добавляем элементы управления (строка в данном примере), значения которого будет записывать кнопка.
2. В раздел uiSources добавляем элементы управления кнопка CustomButtonEntry. В Actions в данном примере три действия, одно из которых - сохранение в источнике.
1 "uiSources": [
2 {
3 ...,
4
5 "Actions": [
6 222,
7 111,
8 333
9 ],
10 "id": 200,
11 "caption": "Сохранить",
12
13 ...
14
15 "discriminator": "CustomButtonEntry"
16 },
17
18 {...}
19 ]
3. В раздел entryDataSources добавляем источник (справочник в данном примере), в который записываются данные.
Пример
Кейс: Внести данные об отпуске сотрудника - ФИО и период. При нажатии кнопки "Сохранить" выполняться три действия: сначала произойдет вычисление количества дней отпуска, затем данные сохранятся и, наконец, обновится пивот.