Функции EditForm, NewForm, SubmitForm, ResetForm и ViewForm
Применимо к: приложениям Canvas
Просмотр, изменение или создание элемента, сохранение содержимого и сброс элементов управления в Edit form.
Обзор
Эти функции изменяют состояние элемента управления Edit form. Элемент управления "Форма" поддерживает следующие режимы:
Режим | Описание |
---|---|
FormMode.Edit | Форма заполняется значениями из существующей записи, и пользователь может изменять значения полей. Пользователь может сохранить все внесенные в запись изменения. |
FormMode.Новый | Форма заполняется значениями по умолчанию, и пользователь может изменять значения полей. После внесения всех изменений пользователь может добавить запись в источник данных. |
FormMode.Просмотр | Форма заполняется значениями из существующей записи, но пользователь не может изменять значения полей. |
Описание
Эти функции обычно вызываются из формулы свойства OnSelect, определенной для элементов управления Button или Image. Они позволяют пользователю сохранить изменения, отменить изменения или создать новую запись. Вы можете объединить элементы управления и эти функции, чтобы создать законченное решение.
Эти функции не возвращают никаких значений.
Эти функции можно использовать только в формулах поведения.
SubmitForm
Используйте функцию SubmitForm в свойстве OnSelect для элемента управления Button, чтобы сохранить изменения, внесенные в источник данных через элемент управления Form.
Прежде чем отправить изменения, эта функция проверяет допустимость значений для всех полей, помеченных как обязательные или имеющих одно или несколько ограничений на значение. Это поведение соответствует выполнению функции Validate.
SubmitForm также проверяет свойство Valid формы, которое представляет собой совокупность всех свойств Valid элементов управления карточка , содержащихся в элементе управления формы. Если возникает проблема, данные не передаются, а также устанавливаются соответствующие значения для свойств Error (Ошибка) и ErrorKind (Тип ошибки) в элементе управления Form.
Если проверка проходит успешно, SubmitForm отправляет изменения в источник данных.
- В случае успешного выполнения запускается поведение OnSuccess, определенное для формы, а также очищаются значения свойств Error (Ошибка) и ErrorKind (Тип ошибки). Если форма находилась в режиме FormMode.New, устанавливается режим FormMode.Edit.
- В случае сбоя запускается поведение OnFailure, определенное для формы, а также устанавливаются соответствующие значения свойств Error (Ошибка) и ErrorKind (Тип ошибки). Режим формы в этом случае не изменяется.
EditForm
Функция EditForm устанавливает режим FormMode.Edit для элемента управления Form. В этом режиме форма заполняется на основании содержимого свойства Item, установленного для элемента управления Form. Если в этом режиме выполняется функция SubmitForm, запись изменяется, а не создается. FormMode.Edit является значением по умолчанию для элемента управления Form.
Заметка
Если форма находится в режим правки, а Item имеет значение null, свойства карточки данных не оцениваются и возвращают значения по умолчанию.
NewForm
Функция NewForm устанавливает режим FormMode.New для элемента управления Form. В этом режиме игнорируется содержимое элемента Item, установленное для элемента управления Form, и форма заполняется на основании значений по умолчанию из свойства DataSource. Если в этом режиме выполняется функция SubmitForm, запись создается, а не изменяется.
ResetForm
Функция ResetForm сбрасывает содержимое формы к начальным значениям, которые были установлены до внесения пользователем любых изменений. Если форма находится в режиме FormMode.New, устанавливается режим FormMode.Edit. Также запускается поведение OnReset, определенное для элемента управления "Форма". Можно также сбросить отдельные элементы управления с помощью функции Reset. Но это можно сделать только в форме.
ViewForm
Функция ViewForm меняет режим элемента управления Form на FormMode.New. В этом режиме форма заполняется на основании содержимого свойства Item, установленного для элемента управления Form. Функции SubmitForm и ResetForm не работают в этом режиме.
Свойство DisplayMode
Текущий режим можно узнать с помощью свойства Mode. Режим также определяет значение свойства DisplayMode, которое могут использовать карточки данных и элементы управления в элементе управления "Форма". Часто свойству DisplayMode карточки данных присваивается значение Parent.DisplayMode (ссылается на форму), как и свойству DisplayMode элемента управления (ссылается на карточку данных):
Режим | DisplayMode | Описание |
---|---|---|
FormMode.Edit | DisplayMode.Edit | Карточки данных и элементы управления можно изменять; они принимают изменения в записи. |
FormMode.Новый | DisplayMode.Редактировать | Карточки данных и элементы управления можно изменять, они принимают новые записи. |
FormMode.Просмотр | DisplayMode.Просмотр | Карточки данных и элементы управления нельзя изменять, они оптимизированы для просмотра. |
Синтаксис
SubmitForm( ИмяФормы )
- ИмяФормы - Обязательно. Элемент управления Form, который отправляет данные в источник данных.
EditForm( ИмяФормы )
- ИмяФормы - Обязательно. Элемент управления Form, который нужно перевести в режим FormMode.Edit.
НоваяФорма( ИмяФормы )
- ИмяФормы - Обязательно. Элемент управления Form, который нужно перевести в режим FormMode.New.
ResetForm( ИмяФормы )
- ИмяФормы - Обязательно. Элемент управления Form, в котором нужно восстановить исходные значения. Также форма переключается из режима FormMode.New в режим FormMode.Edit.
ViewForm( ИмяФормы )
- ИмяФормы - Обязательно. Элемент управления Form, который нужно перевести в режим FormMode.View.
Примеры
Полные примеры вы найдете в статье о формах данных.
Добавьте элемент управления "Button", задайте значение Сохранить для ее свойства Text и задайте следующую формулу в качестве значения свойства OnSelect:
ОтправитьФорму(РедактироватьФорму)
Задайте пустое значение для свойства OnFailure элемента управления Form, а для свойства OnSuccess введите такую формулу:
Назад()
Создайте элемент управления Label с именем ErrorText и задайте в качестве значения его свойства Text следующую формулу:
EditForm.Ошибка
Когда пользователь выбирает кнопку Сохранить, все внесенные в элементе управления Form изменения отправляются в источник данных.
- Если отправка прошла успешно, все изменения сохраняются в существующей или новой (если элемент управления Form находился в режиме New) записи. ErrorText пустой , и снова появляется предыдущий экран.
- Если возникла ошибка при передаче, ErrorText получает понятное сообщение об ошибке и остается открытым текущий экран, где пользователь может устранить проблему и повторить попытку.
Добавьте элемент управления "Button", задайте значение Отменить для ее свойства Text и задайте следующую формулу в качестве значения свойства OnSelect:
СбросФормы(РедактироватьФорму); Назад()
Когда пользователь выбирает кнопку Отменить, значения в элементе управления Form сбрасываются до того состояния, в котором они находились до редактирования пользователем. Снова открывается предыдущий экран, и элемент управления Form переходит в режим Edit, если для него был назначен режим New.
Добавьте элемент управления "Button", задайте значение Создать для ее свойства Text и задайте следующую формулу в качестве значения свойства OnSelect:
NewForm(EditForm); Navigate(EditScreen, None)
Когда пользователь нажимает кнопку Создать, элемент управления Form переключается в режим New и заполняется значениями по умолчанию для источника данных, назначенного этому элементу управления Form. После этого открывается экран, который содержит элемент управления Form. Теперь, когда выполняется функция SubmitForm, запись создается, а не обновляется.