Элементы управления "Отображать форму" и "Изменить форму" служат для отображения, изменения и создания записей в источнике данных.

Описание

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

Примеры элементов управления формы

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

Выбор записи

Назначьте свойству DataSource формы таблицу записей, а затем настройте свойство Item формы для отображения записи из этой таблицы. Например, вы можете назначить свойству Item формы свойство SelectedItem элемента управления Коллекция. Когда пользователь выберет запись в коллекции, та же запись будет отображена в форме (возможно, с дополнительными полями). Если пользователь вернется в коллекцию и выберет другую запись, свойство SelectedItem коллекции изменится соответствующим образом. Это изменение вызовет обновление свойства Item формы, и в нем отобразится новая выбранная запись.

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

Создание записи

Когда элемент управления Изменить форму находится в режиме редактирования, пользователь может обновить запись, назначенную свойству Item формы. В этом режиме свойство Mode имеет значение Edit.

Если элемент управления Изменить форму находится в режиме создания, свойство Item игнорируется. Имеющиеся записи при этом в форме не отображаются. Вместо этого значения в каждом поле соответствуют значениям по умолчанию из источника данных, который вы назначили форме. Функция NewForm переводит форму в этот режим.

Например, вы можете назначить свойству Text кнопки значение Создать, а ее свойству OnSelect — формулу с функцией NewForm. При нажатии кнопки форма перейдет в режим создания, и пользователь сможет создать запись, начав с имеющихся значений.

Форма возвращается в режим редактирования при вызове функции ResetForm или успешном выполнении функции SubmitForm.

  • Вы можете назначить свойству Text кнопки текст Отменить, а ее свойству OnSelect — формулу с функцией ResetForm. При нажатии этой кнопки текущие изменения будут отброшены, а значения в форме вернутся к значениям по умолчанию из источника данных.
  • Вы можете назначить свойству Text кнопки текст Сохранить изменения, а ее свойству OnSelect — формулу с функцией SubmitForm. При нажатии этой кнопки источник данных будет обновлен, а значения в форме вернутся к значениям по умолчанию из источника данных.

Сохранение изменений

С помощью кнопки Сохранить изменения, описанной в предыдущем разделе, пользователь может создать или обновить запись, а затем сохранить изменения в источнике данных. Однако то же самое можно сделать с помощью элемента управления Изображение или другого элемента управления. Для этого нужно использовать его вместе с функцией SubmitForm. В любом случае узнать результат можно с помощью свойств Error, ErrorKind, OnSuccess и OnFailure.

При вызове функции SubmitForm она сначала проверяет данные, которые пользователь желает отправить. Если обязательное поле не заполнено или не выполнено какое-либо другое условие, задается свойство ErrorKind и выполняется формула OnFailure. Вы можете настроить кнопку Сохранить изменения или другой элемент управления так, чтобы они срабатывали только при условии ввода допустимых данных (т. е. если свойство Valid формы имеет значение true). Если данные недопустимы, пользователь должен устранить проблему, а затем снова нажать кнопку Сохранить изменения (или отменить изменения с помощью кнопки Отменить), чтобы сбросить свойства Error и ErrorKind.

Если данные проходят проверку, функция SubmitForm отправляет их источнику данных. На это может потребоваться некоторое время, зависящее от задержки в сети.

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

Некоторые источники данных распознают ситуации, когда два пользователя пытаются обновить одну и ту же запись одновременно. В этом случае свойству ErrorKind присваивается значение ErrorKind.Conflict, а для решения проблемы нужно применить вносимые пользователями изменения по очереди.

Совет. Если вы добавляете на форму кнопку Отменить, чтобы пользователь мог отказаться от уже сделанных изменений, назначьте функцию ResetForm свойству OnSelect кнопки, даже если оно связано с функцией Navigate, сменяющей экран. В противном случае внесенные пользователем изменения сохранятся в форме.

Макет

По умолчанию карточки помещаются в один столбец для приложений для телефона и в три столбца для приложений для планшета. Можно указать количество столбцов в форме и задать привязку карточек к ним при настройке формы. Эти параметры не предоставляются как свойства, так как они используются только для задания свойств X, Y и Width карточек.

Дополнительные сведения о формах данных см. в статье Общие сведения о макете формы данных в Microsoft PowerApps.

Основные свойства

DataSource — источник данных, используемый для просмотра, изменения и создания записей.

  • Если это свойство не задано, пользователь не сможет просматривать, изменять и создавать записи, а дополнительные метаданные и возможности проверки будут недоступны.

DefaultMode — начальный режим элемента управления формой. Допустимые значения и пояснения к ним см. в описании свойства Режим ниже.

DisplayMode — этот режим используется карточками данных и элементами управления в элементе управления формой.

Является производным от свойства Режим и не может быть задан отдельно:

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

Error — понятное сообщение об ошибке, которое отображается для формы, если функция SubmitForm завершается ошибкой.

  • Это свойство есть только у элемента управления Изменить форму.
  • Оно может быть изменено только функциями SubmitForm, EditForm и ResetForm.
  • При отсутствии ошибок это свойство пусто, а свойство ErrorKind имеет значение ErrorKind.None.
  • Сообщения об ошибках по возможности выводятся на языке пользователя. Некоторые сообщения об ошибках возвращаются непосредственно из источника данных и не могут быть представлены на языке пользователя.

ErrorKind — если ошибка возникает при выполнении функции SubmitForm, это свойство содержит тип ошибки.

  • Оно есть только у элемента управления Изменить форму.
  • Это свойство поддерживает те же значения, что и функция Errors. Элемент управления Изменить форму может возвращать значения, указанные ниже.
Значение свойства ErrorKind Описание
ErrorKind.Conflict Другой пользователь изменил ту же запись, что привело к конфликту изменений. Вызовите функцию Refresh, чтобы загрузить запись заново, и повторите попытку изменения.
ErrorKind.None Произошла неизвестная ошибка.
ErrorKind.Sync Об ошибке сообщил источник данных. Для получения дополнительных сведений проверьте свойство Error.
ErrorKind.Validation Обнаружена общая проблема проверки данных.

Item — запись в источнике данных, которую пользователь сможет просмотреть или изменить.

LastSubmit — последняя успешно отправленная запись (включая поля, сгенерированные сервером).

  • Это свойство есть только у элемента управления Изменить форму.
  • Если источник данных автоматически генерирует или вычисляет какие-либо поля, например поле ID с уникальным номером, свойство LastSubmit будет содержать это значение после успешного выполнения функции SubmitForm.
  • Значение этого свойства доступно в формуле OnSuccess.

Mode — режим, в котором находится элемент управления: Edit (редактирование) или New (создание).

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

Форма переходит из режима создания в режим редактирования в описанных далее ситуациях. - После успешной отправки формы и создания записи. Если для коллекции включено автоматическое выделение новой записи, форма переходит в режим редактирования для созданной записи, чтобы пользователь мог внести дополнительные изменения. - При выполнении функции EditForm. - При выполнении функции ResetForm. Например, эта функция может быть назначена кнопке Отменить и вызываться при ее нажатии.

OnFailure — поведение приложения при неудачной операции с данными.

  • Это свойство есть только у элемента управления Изменить форму.

OnReset — поведение приложения при сбросе элемента управления Изменить форму.

  • Это свойство есть только у элемента управления Изменить форму.

OnSuccess — поведение приложения при успешной операции с данными.

  • Это свойство есть только у элемента управления Изменить форму.

Unsaved — значение True, если элемент управления Изменить форму содержит пользовательские изменения, которые не были сохранены.

  • Это свойство есть только у элемента управления Изменить форму.
  • Используйте его для уведомления пользователей о том, что несохраненные изменения могут быть утрачены. Чтобы пользователь не мог выбрать другую запись в элементе управления Коллекция, не сохранив текущую запись, присвойте свойству Disabled коллекции значение Form.Unsaved и отключите операции обновления.

Updates — значения, сохраняемые в источнике данных для записи, загруженной в элемент управления формы.

  • Это свойство есть только у элемента управления Изменить форму.
  • Используйте его для извлечения значений полей из карточек в элементе управления. Затем вы можете использовать эти значения, чтобы вручную обновить источник данных с помощью функции Patch или другого метода, предоставляемого подключением. Если вы отправляете форму с помощью функции SubmitForm, использовать это свойство не требуется.
  • Это свойство возвращает запись из значений. Например, если элемент управления формы содержит карточки для полей Name и Quantity, а свойства Update этих карточек возвращают значения "Мини-приложение" и 10 соответственно, то свойство Updates возвратит значение {Name: "Мини-приложение", Quantity: 10}.

Valid — это свойство показывает, содержит ли элемент управления Карточка или Изменить форму допустимые значения, готовые к отправке в источник данных.

  • Это свойство есть только у элемента управления Изменить форму.
  • Свойство Valid формы объединяет свойства Valid всех элементов управления Карточка в форме. Свойство Valid формы имеет значение true только в том случае, если данные действительны во всех карточках формы. В противном случае оно имеет значение false.
  • Чтобы кнопка сохраняла изменения, только если форма содержит допустимые данные, назначьте свойству Enabled кнопки следующую формулу:

    SubmitButton.Enabled = IsBlank( Form.Error ) || Form.Valid

Дополнительные свойства

BorderColor — цвет границы элемента управления.

BorderStyle — стиль границы элемента управления: Сплошная, Штриховая, Пунктирная или Отсутствует.

BorderThickness — толщина границы элемента управления.

Fill — цвет фона элемента управления.

Height — расстояние между верхним и нижним краем элемента управления.

Visible определяет, отображается ли элемент управления или он скрыт.

Width — расстояние между левым и правым краем элемента управления.

X — расстояние между левым краем элемента управления и левым краем его родительского контейнера (или экрана, если родительского контейнера нет).

Y — расстояние между верхним краем элемента управления и верхним краем его родительского контейнера (или экрана, если родительского контейнера нет).

Дополнительные сведения

Подробный обзор работы форм см. в разделе Общие сведения о формах данных в Microsoft PowerApps.