Элементы управления Форма отображения и Форма редактирования в Power Apps
Отображайте, редактируйте и создавайте запись в источнике данных.
Описание
С помощью элемента управления Форма отображения, добавленного в приложение, пользователь может отобразить все поля записи или только поля, указанные вами. С помощью элемента управления Форма редактирования пользователь может изменить поля, создать запись и сохранить изменения в источнике данных.
Вы можете настроить элемент управления Галерея для отображения таблицы из источника данных, а затем настроить форму для отображения записи, выбранной пользователем в коллекции. Также можно добавить один или несколько элементов управления Кнопка, чтобы пользователь мог сохранить изменения, отменить их и создать запись. Комбинируя элементы управления друг с другом, можно создать полное решение.
Ограничения
Элемент управления «Форма» имеет следующие ограничения:
- Вы не можете копировать и вставлять формы в карточки данных. Это делается для предотвращения создания определенных комбинаций элементов управления, которые могут поставить под угрозу стабильность и производительность приложения.
Выбор записи
Для любого типа формы назначьте свойству DataSource таблицу записей, затем настройте свойство Item формы для отображения записи из этой таблицы. Например, вы можете назначить свойству Item формы свойство SelectedItem элемента управления Галерея. Когда пользователь выберет запись в коллекции, та же запись будет отображена в форме, возможно, с дополнительными полями. Если пользователь вернется в коллекцию и выберет другую запись, свойство SelectedItem коллекции изменится соответствующим образом. Это изменение вызовет обновление свойства Item формы, и в нем отобразится новая выбранная запись.
Можно также задать свойство Item формы с помощью элемента управления Раскрывающийся список, как описано в разделе Отображение, изменение или добавление записи, или с помощью функции, такой как Lookup или First. Например, можно задать в качестве значения свойства Item любую из этих формул, чтобы отображать запись Fabrikam в таблице Accounts в Microsoft Dataverse:
First(Accounts)
Lookup(Accounts, "Fabrikam" in name)
Каждая форма содержит один или несколько элементов управления Карточка. С помощью свойства 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 карточек.
Дополнительные сведения о формах данных см. в статье Общие сведения о макете формы данных.
Ключевые свойства
DataSource — источник данных, используемый для просмотра, изменения и создания записей.
- Если это свойство не задано, пользователь не сможет просматривать, изменять и создавать записи, а дополнительные метаданные и возможности проверки будут недоступны.
DefaultMode — начальный режим элемента управления формой. Допустимые значения и пояснения к ним см. в описании свойства Режим ниже.
DisplayMode — этот режим используется карточками данных и элементами управления в элементе управления формой.
Является производным от свойства Mode и не может быть задан отдельно:
Режим | 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, использовать это свойство не требуется.
- Это свойство возвращает запись из значений. Например, если элемент управления формы содержит элементы управления карточек для полей Имя и Количество, а свойства Update этих карточек возвращают значения "Мини-приложение" и 10 соответственно, то свойство Updates возвратит значение {Имя: "Мини-приложение", Количество: 10}.
Valid — содержит ли элемент управления Карточка или Форма редактирования допустимые значения, готовые к отправке в источник данных.
Это свойство есть только у элемента управления Форма редактирования.
Свойство Valid элемента управления Form объединяет свойства Valid всех элементов управления Карточка в форме. Свойство Valid формы имеет значение true только в том случае, если данные действительны во всех карточках формы. В противном случае свойство Valid имеет значение false.
Чтобы кнопка сохраняла изменения, только если форма содержит допустимые данные, но они еще не были отправлены, назначьте свойству DisplayMode кнопки следующую формулу:
SubmitButton.DisplayMode = If(IsBlank( Form.Error ) || Form.Valid, DisplayMode.Edit, DisplayMode.Disabled)
Дополнительные свойства
BorderColor — цвет границы элемента управления.
BorderStyle — стиль границы элемента управления: Solid, Dashed, Dotted или None.
BorderThickness — толщина границы элемента управления.
Fill — цвет фона элемента управления.
Height — расстояние между верхним и нижним краями элемента управления.
Visible — определяет, отображается элемент управления или он скрыт.
Width — расстояние между левым и правым краями элемента управления.
X — расстояние между левым краем элемента управления и левым краем его родительского контейнера (или экрана, если родительского контейнера нет).
Y — расстояние между верхним краем элемента управления и верхним краем его родительского контейнера (или экрана, если родительского контейнера нет).
Дополнительные сведения
- Подробный обзор работы форм см. в разделе Общие сведения о формах данных.
- См. Справка по формулам Power Fx для EditForm.
Руководство по настройке специальных возможностей
Поддержка средства чтения с экрана
- Рекомендуем добавить в форму заголовок с помощью элемента управления Подпись.
Примечание
Каковы ваши предпочтения в отношении языка документации? Пройдите краткий опрос (обратите внимание, что этот опрос представлен на английском языке).
Опрос займет около семи минут. Личные данные не собираются (заявление о конфиденциальности).