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

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Строка 234: Строка 234:
 
</div></div>
 
</div></div>
  
2. В раздел uiSources добавляем элементы управления кнопка CustomButtonEntry. Свойство Actions в данном примере пустое, дополнительных действий нет.
+
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   ],

Кнопка сохранит все введенные данные автоматически.

Пример

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

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. В раздел 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 добавляем источник (справочник в данном примере), в который записываются данные.


Пример

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

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












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
















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