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

Обзор

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

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

Описание

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

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

SubmitForm

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

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

Также SubmitForm проверяет свойство Valid для формы, которое является агрегатом свойств Valid для всех элементов управления Карточка, которые включены в элемент управления "Форма". Если возникает проблема, данные не передаются, а также устанавливаются соответствующие значения для свойств Error (Ошибка) и ErrorKind (Тип ошибки) в элементе управления "Форма".

Если проверка проходит успешно, SubmitForm отправляет изменения в источник данных.

  • В случае успешного выполнения запускается поведение OnSuccess, определенное для формы, а также очищаются значения свойств Error (Ошибка) и ErrorKind (Тип ошибки). Если форма находилась в режиме FormMode.New, устанавливается режим FormMode.Edit.
  • В случае сбоя запускается поведение OnFailure, определенное для формы, а также устанавливаются соответствующие значения свойств Error (Ошибка) и ErrorKind (Тип ошибки). Режим формы в этом случае не изменяется.

EditForm

Функция EditForm устанавливает режим FormMode.Edit для элемента управления "Форма". В этом режиме форма заполняется на основании содержимого свойства Item, установленного для элемента управления "Форма". Если в этом режиме выполняется функция SubmitForm, запись изменяется, а не создается. FormMode.Edit является режимом по умолчанию для элемента управления "Форма".

NewForm

Функция NewForm устанавливает режим FormMode.New для элемента управления "Форма". В этом режиме игнорируется содержимое элемента Item, установленное для элемента управления "Форма", и форма заполняется на основании значений по умолчанию из свойства DataSource. Если в этом режиме выполняется функция SubmitForm, запись создается, а не изменяется.

ResetForm

Функция ResetForm сбрасывает содержимое формы к начальным значениям, которые были установлены до внесения пользователем любых изменений. Если форма находится в режиме FormMode.New, устанавливается режим FormMode.Edit. Также запускается поведение OnReset, определенное для элемента управления "Форма". Можно также сбросить отдельные элементы управления с помощью функции Сброс. Но это можно сделать только в форме.

ViewForm

Функция ViewForm меняет режим элемента управления "Форма" на FormMode.New. В этом режиме форма заполняется на основании содержимого свойства Item, установленного для элемента управления "Форма". Функции SubmitForm и RestForm не работают в этом режиме.

Свойство DisplayMode

Текущий режим можно узнать с помощью свойства Режим. Режим также определяет значение свойства DisplayMode, которое могут использовать карточки данных и элементы управления в элементе управления "Форма". Часто свойству DisplayMode карточки данных присваивается значение Parent.DisplayMode (ссылается на форму), как и свойству DisplayMode элемента управления (ссылается на карточку данных):

Режим DisplayMode Описание
FormMode.Edit DisplayMode.Edit Карточки данных и элементы управления можно изменять; они принимают изменения в записи.
FormMode.New DisplayMode.Edit Карточки данных и элементы управления можно изменять, они принимают новые записи.
FormMode.View DisplayMode.View Карточки данных и элементы управления нельзя изменять, они оптимизированы для просмотра.

Синтаксис

SubmitForm( FormName )

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

EditForm( FormName )

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

NewForm( FormName )

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

ResetForm( FormName )

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

ViewForm( FormName )

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

Примеры

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

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

    SubmitForm( EditForm )

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

    Back()

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

    EditForm.Error

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

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

    ResetForm( EditForm ); Back()

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

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

    NewForm( EditForm ); Navigate( EditScreen, None )

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