Поделиться через


Изменение элементов управления формой и отображением в Power Apps

Отображение, изменение и создание записи в источнике данных.

Description

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

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

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

Ограничения

Элемент управления форм имеет следующие ограничения:

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

Выбор записи

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

Вы также можете задать свойство item формы с помощью раскрывающегося списка, как show, edit, or add a record describes, or a function, например Lookup или First. Например, для свойства Item можно задать одно из этих формул, чтобы отобразить запись Fabrikam в таблице Accounts в Microsoft Dataverse:

First(Accounts)

Lookup(Accounts, "Fabrikam" in name)

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

Создать запись

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

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

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

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

  • Чтобы отобразить свойство Cancel и его свойство OnSelect, можно задать свойство Text кнопки, включающую функцию ResetForm. Если пользователь выбирает такую кнопку, все изменения в ходе выполнения удаляются, а значения в форме снова соответствуют значениям по умолчанию источника данных.
  • Свойство Text кнопки можно задать для отображения изменений и его свойства OnSelect в формуле, которая включает функцию SubmitForm . Если пользователь выбирает такую кнопку и обновляет источник данных, значения в форме сбрасываются до значений по умолчанию источника данных.

Сохранить изменения

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

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

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

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

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

Подсказка

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

Макет

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

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

Ключевые свойства

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

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

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

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

Производные от свойства Mode и не могут быть заданы независимо:

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

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

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

ErrorKind — если ошибка возникает при выполнении SubmitForm , тип ошибки, которая произошла.

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

Элемент — запись в DataSource , отображаемая пользователем или редактируемая.

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

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

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

Mode Description
FormMode.Edit Пользователь может изменить запись с помощью формы. Значения в карточках формы предварительно заполняются существующей записью, чтобы пользователь изменился. Если функция SubmitForm успешно выполняется, то существующая запись изменяется.
FormMode.New Пользователь может создать запись с помощью формы. Значения в элементах управления формы предварительно заполняются значениями по умолчанию для записи источника данных. Если функция SubmitForm успешно выполняется, создается запись.
FormMode.View Пользователь может просматривать запись с помощью формы. Значения в элементах управления формы предварительно заполняются значениями по умолчанию для записи источника данных.

Форма переключается с нового режима на режим редактирования при возникновении любого из этих изменений:

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Допустимое свойство элемента управления Form объединяет допустимые свойства всех элементов управления Card в форме. Допустимое свойство формы имеет значение true, только если данные во всех карточках в этой форме допустимы; в противном случае допустимое свойство формы имеет значение false.

  • Чтобы включить кнопку для сохранения изменений только в том случае, если данные в форме допустимы, но еще не отправлены, задайте для свойства DisplayMode кнопки значение этой формулы:

    SubmitButton.DisplayMode = If(IsBlank( Form.Error ) || Form.Valid, DisplayMode.Edit, DisplayMode.Disabled)

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

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

BorderStyle — является ли граница элемента управления твердым, дефишированным, dotted или None.

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

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

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

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

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

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

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

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

Руководство по настройке специальных возможностей

Поддержка средства чтения с экрана

  • Попробуйте добавить заголовок в форму с помощью метки.