Редактирование связанных записей таблицы прямо из главной формы другой таблицы
Есть несколько способов работы со связанными записями таблицы в форме таблицы в Power Apps. Например, вы можете включить связанные таблицы в режиме только для чтения с помощью экспресс-форма и создать или отредактировать запись, используя главную форму в диалоговом окне.
Другой способ работы с записями связанных таблиц — добавление элемента управления компонента формы в основную форму другой таблицы. Элемент управления компонента формы позволяет пользователям редактировать информацию связанной записи таблицы непосредственно из формы другой таблицы.
Например, вот компонент формы на отдельной вкладке в основной форме учетной записи, который позволяет пользователю редактировать запись контакта, не выходя из формы учетной записи.
Например, вот компонент формы на существующей вкладке основной формы учетной записи, который также позволяет пользователю редактировать запись контакта, не покидая вкладку Сводка формы учетной записи.
Добавить компонент формы в основную форму таблицы
- В левой области навигации выберите Компоненты. Если этого пункта нет на боковой панели, выберите …Еще, а затем выберите нужный пункт.
- Разверните либо Ввод , либо Отображение, а затем выберите Форма.
На странице конфигурации элемента управления компонента формы выберите свойства элемента управления:
- Выберите столбец поиска для формы.
- Выберите Связанную форму. В зависимости от конфигурации соответствующей таблицы для столбца:
- Если столбец подключен к одной таблице (например, столбец «Создано»), выберите Связанную форму для использования.
- Если столбец подключен к нескольким таблицам (полиморфным, например, к столбцу владельца), выберите + Связанная форма , а затем выберите Добавить , чтобы добавить связанную форму. Продолжайте выбирать + Связанная форма>Добавить , чтобы добавить связанную форму для каждой связанной таблицы.
- По умолчанию все типы клиентских приложений Веб, Телефон и Планшет включены для отображения формы. Очистите типы клиентов, в которых вы не хотите отображать форму.
- Нажмите кнопку Готово.
- Сохраните , а затем опубликуйте форму.
Добавление компонента формы с использованием классического интерфейса
В этом примере стандартная основная форма Контакт настраивается для элемента управления компонентом формы, который добавляется в основную форму учетной записи.
Внимание!
Изменился способ добавления элемента управления компонентом формы. Мы рекомендуем использовать новый интерфейс. Дополнительная информация: Добавление компонента формы в главную форму таблицы
Выполните вход в Power Apps.
Выберите Таблицы на левой панели. Либо откройте решение, а затем выберите таблицу, например Учетная запись. Если этого пункта нет на боковой панели, выберите …Еще, а затем выберите нужный пункт.
Выберите Формы в меню компонентов.
Выберите форму с типом формы Основная из доступных форм.
Выберите Перейти в классический режим. Классический интерфейс редактор форм открывается в вашем браузере в виде вкладки.
Выберите вкладку Вставить . Затем создайте новую вкладку и добавьте новый раздел или добавьте новый раздел в существующую вкладку.
В новом разделе добавьте столбец поиска, например, столбец поиска Основной контакт .
Выберите столбец подстановки, а затем на вкладке Главная выберите Изменить свойства.
На вкладке Элементы управления выберите Добавить элемент управления, в списке типов элементов управления выберите Элемент управления компонентом формы, а затем выберите Добавить.
Выберите Веб, Планшет и Телефон для компонента.
Выберите Изменить (значок карандаша) и в диалоговом окне Настроить свойство выберите Привязать к статическому значению , а затем добавьте запись XML, похожую на эту, где TableName — уникальное имя таблицы, а FormID — идентификатор формы для главной формы:
<QuickForms><QuickFormIds><QuickFormId entityname="TableName">FormID</QuickFormId></QuickFormIds></QuickForms>
- Например, чтобы отобразить основную форму Контактов на форме учетной записи, используйте:
<QuickForms><QuickFormIds><QuickFormId entityname="contact">1fed44d1-ae68-4a41-bd2b-f13acac4acfa</QuickFormId></QuickFormIds></QuickForms>
- Например, чтобы отобразить основную форму Контактов на форме учетной записи, используйте:
Выберите ОК, а затем выберите ОК еще раз.
Сохраните , а затем опубликуйте вашу форму.
Совет
Чтобы найти уникальное имя таблицы, выберите таблицу в Power Apps , а затем выберите Настройки. Имя отображается на панели таблицы Редактировать . Идентификатор формы можно найти в URL-адресе браузера при редактировании формы. Идентификатор следует за частью URL-адреса /edit/ .
В классическом конструктор форм идентификатор формы следует за частью URL-адреса formId%3d .
Поведение компонента формы
В этом разделе описывается поведение компонента формы при использовании в приложении на основе модели.
Выбор записи
Для того, чтобы элемент управления компонентом формы мог показывать форму, столбец подстановки, к которому он привязан, должен иметь значение. В противном случае элемент управления отобразит сообщение Исходная запись не выбрана. Один из способов установить значение — добавить в форму элемент управления подстановки, который привязан к тому же столбцу подстановки, что и элемент управления компонентом формы. При использовании элемента управления подстановки для изменения значения столбца подстановки элемент управления компонентом формы покажет форму с данными для нового значения столбца подстановки.
Проверка столбца
Все столбцы, как в основной форме, так и в элементах управления компонентами формы, должны быть допустимыми для отправки данных в Microsoft Dataverse. Это верно как для ошибок проверки столбцов, так и для отсутствия обязательных столбцов и т. д.
OnSave
обработчики запускаются для главной формы и ее элементов управления компонентами формы. Любой обработчик может отменить сохранение для главной формы и элементов управления компонентами формы, используя preventDefault. Это означает, что ни одна операция сохранения не может вызвать preventDefault
отправку данных Dataverse. Порядок вызова обработчиков OnSave
не определен. Дополнительная информация: Событие OnSave формы (справочник клиентского API) в приложениях на основе моделей
Сохранение записи
После прохождения этапа проверки данные отправляются в Dataverse для каждой записи. В настоящее время каждая запись обновляется независимо с разными запросами. Сохранения не являются транзакционными, и порядок сохранений не определен. Ошибка при сохранении одного компонента формы не приведет к откату изменений в основной форме или других компонентах формы. После завершения каждого сохранения данные обновляются для всех записей в форме.
Уведомления
Уведомления в компоненте формы объединяются в уведомления основной формы. Например, если в компоненте формы есть недопустимые столбцы и вы пытаетесь сохранить, уведомление о недопустимом столбце будет отображаться в верхней части основной формы, а не в компоненте формы.
Обработка ошибок
Если во время сохранения будет несколько ошибок, пользователю будет показана только одна ошибка. Если пользователь может внести изменения, чтобы исправить первую ошибку и сохранить, будет видна следующая ошибка. Пользователь должен будет продолжить сохранение, пока все ошибки не будут устранены.
Изменение записей с несохраненными изменениями
Если в форме для компонента формы есть несохраненные изменения и пользователь пытается изменить столбец подстановки, к которому привязан компонент формы, пользователь будет предупрежден об этом изменении.
API-адрес клиента
Контекст формы доступен для элемента управления компонентом формы. Доступ к нему можно получить через контекст формы основной формы, обратившись к элементу управления через API, например, getControl. Прежде чем получить доступ к данным для связанной таблицы в элементе управления компонентом формы, обработчики событий должны дождаться, пока API isLoaded элемента управления вернет значение true.
Ограничения
Обратите внимание на следующие ограничения при добавлении элемента управления компонента формы в форму таблицы:
Элемент управления компонента формы поддерживает отрисовку только основных форм. Точно так же поддержка добавления элемента управления компонентом формы поддерживается только в основных формах. Другие типы форм, такие как быстрое создание, быстрый просмотр и карточка, не поддерживаются.
Формы с потоком бизнес-процесса в настоящее время не поддерживаются ни в основной форме таблицы, ни в связанной форме таблицы. Если у вас есть форма с потоком бизнес-процессов, вы можете столкнуться с неожиданным поведением. Мы рекомендуем не использовать компонент формы с формой, в которой используется поток бизнес-процессов.
Элемент управления компонента формы не поддерживает встроенные элементы управления компонента формы, например добавление элемента управления компонента формы в форму, которая используется элементом управления компонента формы.
Элемент управления компонентом формы не поддерживает встроенные приложения Canvas. Вы можете столкнуться с неожиданным поведением этих приложений на основе холста.
Элемент управления компонента формы будет отображать только первую вкладку используемой формы, если в эту форму включено несколько вкладок.
Использование одной и той же формы для разных элементов управления компонентами формы в одной форме не поддерживается.
Форма, которую вы используете с компонентом формы, должна быть включена в ваше приложение. Если это не так или если текущий пользователь не имеет доступа к форме, будет выполнена откат к самой верхней основной форме, включенной в приложение и доступной пользователю (в зависимости от порядка форм).
Все компоненты, используемые формой в компоненте формы, должны быть включены в ваше приложение. Эти компоненты включают связанные таблицы, представления и потоки бизнес-процессов. В противном случае они не будут доступны в форме или может произойти неожиданное поведение.
Элементы управления для компонентов формы имеют определенные ограничения при отображении в многосеансовых приложениях. В частности, динамически добавленные обработчики в компонент формы, такие как
addOnSave
илиaddOnChange
, могут не запускаться после переключения многосессионных вкладок.Вы можете заметить, что стена временной шкалы может не обновляться, если столбец, используемый для установки стены временной шкалы, изменился в компоненте формы. Когда страница обновится, стена временной шкалы обновится, как и ожидалось.
На мобильных устройствах элемент управления временной шкалой в настоящее время не отображается в элементе управления компонента формы.
Для подсеток кнопки команд Просмотреть все записи и Просмотреть связанные записи не будут доступны, если они отображаются внутри компонента формы.
Элементы управления компонентами формы не поддерживаются в диалоговых окнах массового редактирования. Они не будут отображаться в форме в диалоговом окне массового редактирования по умолчанию, и любые изменения, внесенные в связанные с ними записи таблицы, не будут сохранены.
Если при сохранении элемента управления компонента формы обнаруживаются дубликаты записей, пользователи не смогут просматривать дубликаты для разрешения конфликтов.