Платформа 3V/Формы/Компоненты/Основные/Кнопка/Кнопка 'Сохранить': различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Строка 1: Строка 1:
 
=!!!СТРАНИЦА НАХОДИТСЯ В СТАДИИ РАЗРАБОТКИ!!!=
 
=!!!СТРАНИЦА НАХОДИТСЯ В СТАДИИ РАЗРАБОТКИ!!!=
  
Кнопку "Сохранить" можно реализовать двумя способами: <br>
+
Кнопку "Сохранить" можно реализовать двумя способами: <br><br>
1. кнопка ButtonSubmitSourceEntryDto, <br>
+
1. Кнопка ButtonSubmitSourceEntryDto, <br>
2. кнопка CustomButtonEntry.  <br>
+
2. Кнопка CustomButtonEntry.  <br>
 
<br>
 
<br>
Обе кнопки могут содержать дополнительные действия помимо сохранения. Основным отличием является порядок сохранения данных -  в кнопке ButtonSubmitSourceEntryDto нельзя управлять порядком сохранения. <br>
+
Обе кнопки могут содержать дополнительные действия помимо сохранения.  
 +
 
 +
Основным отличием является порядок сохранения данных -  в кнопке ButtonSubmitSourceEntryDto нельзя управлять порядком сохранения. <br>
  
 
==ButtonSubmitSourceEntryDto==
 
==ButtonSubmitSourceEntryDto==
Строка 164: Строка 166:
 
==CustomButtonEntry==
 
==CustomButtonEntry==
 
Кнопка CustomButtonEntry требует [[Платформа_3V/Формы/Действия/Сохранение источников|'''добавить действие, которое сохраняет добавленный элемент в источнике данных''']]. <br>
 
Кнопка CustomButtonEntry требует [[Платформа_3V/Формы/Действия/Сохранение источников|'''добавить действие, которое сохраняет добавленный элемент в источнике данных''']]. <br>
 +
Действия, "повешанные" на кнопку, будут выполняться последовательно.
 
<syntaxhighlight lang="JSON" line>
 
<syntaxhighlight lang="JSON" line>
 
{
 
{
Строка 194: Строка 197:
  
 
===Пример===
 
===Пример===
Кейс: Внести данные об отпуске сотрудника - ФИО и период, при нажатии кнопки "Сохранить" произойдет вычисление количества дней отпуска, после этого данные сохранятся.
+
Кейс: Внести данные об отпуске сотрудника - ФИО и период.  При нажатии кнопки "Сохранить" выполняться три действия: сначала произойдет вычисление количества дней отпуска, затем данные сохранятся и, наконец, обновится пивот.
  
 
[[Файл:SubmitButton_1.gif|мини|слева|Внесение данных]]
 
[[Файл:SubmitButton_1.gif|мини|слева|Внесение данных]]

Версия 11:32, 25 июня 2021

!!!СТРАНИЦА НАХОДИТСЯ В СТАДИИ РАЗРАБОТКИ!!!

Кнопку "Сохранить" можно реализовать двумя способами:

1. Кнопка ButtonSubmitSourceEntryDto,
2. Кнопка CustomButtonEntry.

Обе кнопки могут содержать дополнительные действия помимо сохранения.

Основным отличием является порядок сохранения данных - в кнопке ButtonSubmitSourceEntryDto нельзя управлять порядком сохранения.

ButtonSubmitSourceEntryDto

Кнопка сохраняет все введенные данные автоматически.
Важно, чтобы свойство "isReadOnly" источника (источников), куда записываются данные, принимало значение false.

 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     }

Пример

Кейс: Добавление нового элемента справочника.

Screenshot 2021-06-18 at 11.37.46.png








Screenshot 2021-06-18 at 11.41.09.png










Кнопка Сохранить(контрол id=100) сохрает введенное в строку значение в справочник (источник id=3).

JSON серверной карточки

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 }

Пример

Кейс: Внести данные об отпуске сотрудника - ФИО и период. При нажатии кнопки "Сохранить" выполняться три действия: сначала произойдет вычисление количества дней отпуска, затем данные сохранятся и, наконец, обновится пивот.

Внесение данных












Вычисление и запись результата
















JSON серверной карточки