Функции EditForm, NewForm, SubmitForm, ResetForm и ViewForm

Применимо к: приложениям на основе холста

Просмотр, изменение или создание элемента, сохранение содержимого и сброс элементов управления в Edit form.

Обзор

Эти функции изменяют состояние элемента управления Edit form. Элемент управления "Форма" поддерживает следующие режимы:

Режим Описание
FormMode.Edit Форма заполняется значениями из существующей записи, и пользователь может изменять значения полей. Пользователь может сохранить все внесенные в запись изменения.
FormMode.New Форма заполняется значениями по умолчанию, и пользователь может изменять значения полей. После внесения всех изменений пользователь может добавить запись в источник данных.
FormMode.View Форма заполняется значениями из существующей записи, но пользователь не может изменять значения полей.

Описание

Эти функции обычно вызываются из формулы свойства OnSelect, определенной для элементов управления Button или Image. Они позволяют пользователю сохранить изменения, отменить изменения или создать новую запись. Вы можете объединить элементы управления и эти функции, чтобы создать законченное решение.

Эти функции не возвращают никаких значений.

Эти функции можно использовать только в формулах поведения.

SubmitForm

Используйте функцию SubmitForm в свойстве OnSelect для элемента управления Button, чтобы сохранить изменения, внесенные в источник данных через элемент управления Form.

Прежде чем отправить изменения, эта функция проверяет допустимость значений для всех полей, помеченных как обязательные или имеющих одно или несколько ограничений на значение. Это поведение соответствует выполнению функции Validate.

Также SubmitForm проверяет свойство Valid для формы, которое является агрегатом свойств Valid для всех элементов управления Card, которые включены в элемент управления Form. Если возникает проблема, данные не передаются, а также устанавливаются соответствующие значения для свойств 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.New DisplayMode.Edit Карточки данных и элементы управления можно изменять, они принимают новые записи.
FormMode.View DisplayMode.View Карточки данных и элементы управления нельзя изменять, они оптимизированы для просмотра.

Синтаксис

SubmitForm( FormName )

  • FormName — обязательный аргумент. Элемент управления Form, который отправляет данные в источник данных.

EditForm( FormName )

  • FormName — обязательный аргумент. Элемент управления Form, который нужно перевести в режим FormMode.Edit.

NewForm( FormName )

  • FormName — обязательный аргумент. Элемент управления Form, который нужно перевести в режим FormMode.New.

ResetForm( FormName )

  • FormName — обязательный аргумент. Элемент управления Form, в котором нужно восстановить исходные значения. Также форма переключается из режима FormMode.New в режим FormMode.Edit.

ViewForm( FormName )

  • FormName — обязательный аргумент. Элемент управления Form, который нужно перевести в режим FormMode.View.

Примеры

Полные примеры вы найдете в статье о формах данных.

  1. Добавьте элемент управления "Button", задайте значение Сохранить для ее свойства Text и задайте следующую формулу в качестве значения свойства OnSelect:

    SubmitForm( EditForm )

  2. Задайте пустое значение для свойства OnFailure элемента управления Form, а для свойства OnSuccess введите такую формулу:

    Back()

  3. Создайте элемент управления Label с именем ErrorText и задайте в качестве значения его свойства Text следующую формулу:

    EditForm.Error

    Когда пользователь выбирает кнопку Сохранить, все внесенные в элементе управления Form изменения отправляются в источник данных.

    • Если отправка прошла успешно, все изменения сохраняются в существующей или новой (если элемент управления Form находился в режиме New) записи. ErrorText получает пустое значение, и снова открывается предыдущий экран.
    • Если возникла ошибка при передаче, ErrorText получает понятное сообщение об ошибке и остается открытым текущий экран, где пользователь может устранить проблему и повторить попытку.
  4. Добавьте элемент управления "Button", задайте значение Отменить для ее свойства Text и задайте следующую формулу в качестве значения свойства OnSelect:

    ResetForm( EditForm ); Back()

    Когда пользователь выбирает кнопку Отменить, значения в элементе управления Form сбрасываются до того состояния, в котором они находились до редактирования пользователем. Снова открывается предыдущий экран, и элемент управления Form переходит в режим Edit, если для него был назначен режим New.

  5. Добавьте элемент управления "Button", задайте значение Создать для ее свойства Text и задайте следующую формулу в качестве значения свойства OnSelect:

    NewForm( EditForm ); Navigate( EditScreen, None )

    Когда пользователь нажимает кнопку Создать, элемент управления Form переключается в режим New и заполняется значениями по умолчанию для источника данных, назначенного этому элементу управления Form. После этого открывается экран, который содержит элемент управления Form. Теперь, когда выполняется функция SubmitForm, запись создается, а не обновляется.