Использование элемента управления "Форма сущности"Use the Entity form control

Создавайте приложения быстрее, используя элемент управления Форма сущности для добавления многофункциональных форм для сущности Common Data Service.Create apps faster by using the Entity form control to add rich forms for a Common Data Service entity.

Чтобы получить общие сведения об элементе управления Форма сущности, прочитайте запись блога: New entity form control (experimental feature) for Common Data Service (Новый элемент управления Форма сущности (экспериментальный) для Common Data Service).For an introduction to the Entity form control, see this blog post: New entity form control (experimental feature) for Common Data Service.

Важно! Имейте в виду, что элемент управления Форма сущности, описываемый в записи блога, является экспериментальным. Следует осторожно использовать элемент управления Форма сущности в рабочих приложениях, по крайней мере сейчас.Important: Please be aware of the experimental nature of the Entity form control as outlined in the blog post, and be careful about using the Entity form control in production apps, at least for now.

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

Ниже приведены основные свойства элемента управления Форма сущности.Here are the key properties of an Entity form control.

DataSource — указывает источник данных, содержащий записи, которые требуется показать.DataSource – Specifies the data source that contains the record(s) that you want to display.
Примечание. В настоящее время в качестве источников данных для элемента управления Форма сущности поддерживаются только сущности в Common Data Service.Note: Currently only entities in the Common Data Service are supported as data sources for the Entity form control.

Pattern — задает стиль формы, которая будет отображаться в элементе управления Форма сущности.Pattern – Specifies the style of the form that you want to display in the Entity form control. Значение этого свойства задается с помощью перечисления FormPattern.Set this property by using the FormPattern enumeration.

  • FormPattern.List — отображает табличный список записей.FormPattern.List – Displays a tabular list of records.
  • FormPattern.CardList — отображает записи в виде списка карт.FormPattern.CardList – Displays a card list of records.
  • FormPattern.Details — отображает форму для просмотра или изменения данных отдельной записи.FormPattern.Details – Displays a form to view or edit the details of a single record.
  • FormPattern.None — стиль не задан явным образом.FormPattern.None – No style has been explicitly specified. Используется по умолчанию в свойстве List для планшетных приложений и в свойстве CardList для приложения для телефона.Defaults to List for tablet apps and CardList for phone apps.

Item — указывает запись в источнике данных, которую должен отображать элемент управления Форма сущности.Item – Specifies the record in the data source that the Entity form control should display. Это свойство используется, только если Pattern имеет значение FormPattern.Details.This property is used only when Pattern is set to FormPattern.Details.

Selected — возвращает запись, которая выбрана в данный момент.Selected – Gets the record that’s currently selected.
Пример. Если элемент управления Форма сущности отображает список записей заказов на продажу, то свойство Selected вернет запись, выбранную в данный момент.Example: If the Entity form control displays a list of sales-order records, the Selected property will give you the record that’s currently selected. Можно также обращаться к полям в записи.You can also access a field within a record. (Например, укажите значение поля Account выбранной записи как Selected.Account.)(For example, specify the value of the Account field of the selected record as Selected.Account.)

SelectableFields — указывает, какие поля должны отображаться как ссылки.SelectableFields – Specifies which fields should appear as links. Для задания значения этого свойства используется приведенный ниже синтаксис.Set the value of this property by using this syntax:
{Имя_поля_1 : true, Имя_поля_2 : true}{Field1Name : true, Field2Name : true}
Пример. Если вы хотите, чтобы поля SalesOrderId и Account отображались в форме в виде ссылок, задайте для свойства SelectableFields этой формы следующее значение.Example: If you want the SalesOrderId and Account fields to appear as links in a form, set the SelectableFields property of that form to this value:
{SalesOrderId : true, Account : true}{SalesOrderId : true, Account : true}

SelectedField — определяет поле, которое щелкнул пользователь или которого он коснулся.SelectedField – Determines which field was clicked or tapped. Это относится только к полям, указанным как SelectableFields.This applies only to the fields specified as SelectableFields.
Пример. Если свойству SelectableFields задано значение {SalesOrderId : true, Account : true} и пользователь щелкает поле Account или касается его, то SelectedField.Account присваивается значение true.Example: If you set the SelectableFields property to {SalesOrderId : true, Account : true} and the user clicks or taps the Account field, SelectedField.Account is set to true.

OnFieldSelect — определяет, как приложение реагирует, когда пользователь щелкает поле или касается его.OnFieldSelect – How an app responds when the user clicks or taps a field. Это относится только к полям, указанным как SelectableFields.This applies only to the fields specified as SelectableFields.

Mode — определяет режим формы.Mode – Determines the mode of the form. Чтобы изменить режим, используйте функцию ViewForm, EditForm или NewForm.To change the mode, use the ViewForm, EditForm, or NewForm function. Эти функции работают, только если свойство Pattern имеет значение FormPattern.Details.These functions work only when the Pattern property is set to FormPattern.Details. Задайте для свойства Mode значение перечисления FormMode.Set the value of the Mode property to a value of the FormMode enumeration.

  • FormMode.View — позволяет пользователям просмотреть, но не изменить или добавить запись.FormMode.View – Allows users to view but not edit or add a record.
  • FormMode.Edit — позволяет пользователям изменить запись.FormMode.Edit – Allows users to edit a record.
  • FormMode.New — позволяет пользователям добавить запись.FormMode.New – Allows users to add a record.

OnSuccess — поведение приложения при успешной операции с данными.OnSuccess – How an app responds when a data operation has been successful.

OnFailure — поведение приложения при неудачной операции с данными.OnFailure - How an app responds when a data operation has been unsuccessful.

Unsaved — определяет, содержит ли запись, которую пользователь редактирует, несохраненные изменения.Unsaved – Determines whether a record that a user is editing has unsaved changes.

Эти общие функции можно использовать с элементами управления Форма сущности и Форма редактирования.You can use these shared functions with either the Entity form control or the Edit form control. Эти функции работают с элементом управления Форма сущности, только если свойство Pattern имеет значение FormPattern.Details.These functions work with the Entity form control only when its Pattern property is set to FormPattern.Details.

ViewForm — задает для свойства Mode элемента управления Форма сущности значение FormMode.View.ViewForm – Sets the Mode property of an Entity form control to FormMode.View.

EditForm — задает для свойства Mode элемента управления Форма сущности значение FormMode.Edit.EditForm- Sets the Mode property of an Entity form control to FormMode.Edit.

NewForm — задает для свойства Mode элемента управления Форма сущности значение FormMode.New.NewForm - Sets the Mode property of an Entity form control to FormMode.New.

SubmitForm — сохраняет изменения, когда пользователь редактирует запись в элементе управления Форма сущности.SubmitForm - Saves changes when a user edits a record in an Entity form control.

ResetForm — отклоняет несохраненные изменения, когда пользователь редактирует запись в элементе управления Форма сущности.ResetForm - Abandons unsaved changes when a user edits a record in an Entity form control.

Теперь, когда вы получили представление о различных свойствах и функциях, давайте посмотрим на них в действии.Now that you have an overview of the various properties and functions, let’s look at them in action.

Примечание. Если у вас нет доступа к базе данных Common Data Service, создайте ее, прежде чем перейти к дальнейшим действиям.Note: If you don’t have access to a Common Data Service database, create one before you start to follow these steps.

Отображение списка записейDisplay a list of records

Следующие пять процедур представляют собой отдельный комплексный пример использования элементов управления Форма сущности.The next five procedures provide a single, end-to-end example of how to use Entity form controls. В этой процедуре следует добавить форму, в которой отображается список заказов на продажу.In this procedure, add a form that shows a list of sales orders.

  1. Создайте пустое планшетное приложение.Create a blank tablet app.

  2. Переименуйте первый экран в SalesOrderListScreen.Rename the first screen SalesOrderListScreen.

  3. На вкладке Вставка щелкните или нажмите Формы, а затем — Форма сущности (экспериментальная).On the Insert tab, click or tap Forms, and then click or tap Entity form (experimental).

    Элемент управления Форма сущности будет добавлен на экран.An Entity form control is added to the screen.

  4. Переименуйте элемент управления Форма сущности в SalesOrderListForm и измените его размер, развернув на весь экран.Rename the Entity form control SalesOrderListForm, and resize it to cover the entire screen.
  5. В области справа выберите значок базы данных рядом с текстом Источник данных не выбран и щелкните или коснитесь Добавить источник данных.In the right-hand pane, click or tap the database icon next to the text No data source selected, and then click or tap Add a data source.

  6. Из списка подключений выберите подключение для базы данных.In the list of connections, click or tap the connection for your database.

  7. Из списка сущностей выберите Sales order и щелкните или коснитесь Подключить.In the list of entities, click or tap Sales order, and then click or tap Connect.

    Источник данных для сущности Sales order создан и задан для свойства DataSource формы SalesOrderListForm.A data source for the Sales order entity is created, and the DataSource property of the SalesOrderListForm is set to that data source.

    Элемент управления Форма сущности показывает список заказов на продажу.The Entity form control shows a list of sales orders. С помощью элемента управления Форма сущности можно быстро отобразить список без необходимости создавать его вручную.By using the Entity form control, you quickly displayed a list form without having to manually build it.

    Вы не задали свойство Pattern для элемента управления Форма сущности, поэтому по умолчанию используется шаблон List.You didn’t set the Pattern property for the Entity form control, so it defaults to the List pattern. Кроме того, группа полей DefaultList сущности Sales order используется для отображения формы со списком.In addition, the DefaultList field group of the Sales order entity is used to display the list form. Форма также является динамической, и она будет автоматически отражать изменения в группе полей.The form is also dynamic and will automatically reflect any change in the field group.

  8. (Необязательно.) Просмотрите группу полей DefaultList сущности Sales order.(Optional) View the DefaultList field group of the Sales order entity:

    1. Войдите на сайт powerapps.com, в области навигации слева щелкните или коснитесь Common Data Service и щелкните или коснитесь Сущности.Sign in to powerapps.com, click or tap Common Data Service in the left navigation pane, and then click or tap Entities.
    2. Из списка сущностей выберите Sales order, щелкните или коснитесь Группы полей и выберите группу полей DefaultList.In the list of entities, click or tap Sales order, click or tap the Field groups tab, and then click or tap the DefaultList field group.

      Поля в списке заказов на продажу соответствует перечисленным ниже.The fields in the sales order list match those listed here.

      В Common Data Service вы можете изменить группы полей для настраиваемых сущностей (но не стандартных сущностей), чтобы изменить поля, которые отображаются в соответствующих формах, отображаемых в элементе управления Форма сущности.In the Common Data Service, you can modify field groups for custom entities (but not standard entities) to change the fields that appear on the corresponding forms that the Entity form control displays. Что очень удобно, любое изменение в группе полей автоматически применяется ко всем приложениям, использующим элемент управления Форма сущности для отображения соответствующей формы.Best of all, any change to the field group is automatically reflected in all the apps that use an Entity form control to display the corresponding form.

Отображение сведений о записиDisplay the details of a record

Давайте добавим еще один элемент управления Форма сущности для отображения подробных сведений о заказе на продажу, выбранном из списка, который был создан ранее.Let’s add another Entity form control to display the details of the sales order that’s selected in the list that you created earlier.

  1. Измените размер SalesOrderListForm, чтобы форма занимала половину экрана, и добавьте второй элемент управления Форма сущности, занимающий освободившуюся половину экрана.Resize SalesOrderListForm to cover half the screen, and add a second Entity form control to cover the other half of the screen.

  2. Переименуйте второй элемент управления Форма сущности в SalesOrderDetailsForm и подключите его к источнику данных Sales order, который был создан ранее.Rename the second Entity form control SalesOrderDetailsForm, and connect it to the Sales order data source that you created earlier.

  3. Задайте для свойства Pattern формы SalesOrderDetailsForm значение FormPattern.Details.Set the Pattern property of SalesOrderDetailsForm to FormPattern.Details.

    SalesOrderDetailsForm использует группу полей DefaultDetails сущности Sales order для отображения формы.SalesOrderDetailsForm uses the DefaultDetails field group of the Sales order entity to display the form. Как и для SalesOrderListForm, вы можете быстро отобразить подробные сведения о записи без необходимости вручную создавать отдельную форму.As with the SalesOrderListForm, you can quickly show record details without having to manually build a form.

  4. Задайте для свойства Item формы SalesOrderDetailsForm значение SalesOrderListForm.Selected.Set the Item property of SalesOrderDetailsForm to SalesOrderListForm.Selected.

    SalesOrderDetailsForm будет отображать сведения о записи, которую пользователь выберет в SalesOrderListForm.SalesOrderDetailsForm will display the details of the record that the user clicks or taps in SalesOrderListForm.

  5. Включите предварительный просмотр приложения, нажав клавишу F5, и выберите заказ на продажу из списка слева.Preview the app by pressing F5, and then click or tap a sales order in the list on the left.

    В правой части экрана отобразятся сведения о выбранном заказе.The details of the order that you selected appear on the right side.

Настройка поля для перехода на другой экранConfigure a field to navigate to another screen

Далее давайте добавим в приложение экраны, а затем настроим поля в элементе управления Форма сущности для перехода на другой экран в приложении, когда пользователь щелкает поле или касается его.Next let’s add more screens to our app and then configure fields in an Entity form control to navigate to another screen in the app when the user clicks or taps a field.

  1. Добавьте в приложение второй экран и переименуйте его в SalesOrderDetailsScreen.Add a second screen to the app, and rename the screen SalesOrderDetailsScreen.
  2. Вырежьте форму SalesOrderDetailsForm, вставьте ее в экран SalesOrderDetailsScreen, а затем измените размер формы таким образом, чтобы она занимала большую часть экрана, оставив достаточно места для значка вверху.Cut the SalesOrderDetailsForm, paste it on the SalesOrderDetailsScreen, and resize the form to cover most of the screen, leaving enough space for an icon at the top.
  3. Добавьте значок со стрелкой назад в левый верхний угол SalesOrderDetailsScreen.Add a back-arrow icon near the upper-left corner of SalesOrderDetailsScreen.
  4. Задайте для свойства OnSelect значка со стрелкой назад функцию Back.Set the OnSelect property of the back-arrow icon to the Back function.

  5. На экране SalesOrderListScreen измените размер формы SalesOrderListForm, развернув ее на весь экран.On the SalesOrderListScreen, resize the SalesOrderListForm to cover the entire screen.
  6. Щелкните или коснитесь SalesOrderListForm, чтобы выбрать эту форму.Click or tap the SalesOrderListForm to select it.
  7. В области справа в разделе Поля настройте SalesOrderId для перехода на экран SalesOrderDetailsScreen.In the right-hand pane, under Fields, set SalesOrderId to navigate to the SalesOrderDetailsScreen.

    Элемент управления Форма сущности отображает значения поля SalesOrderId (первый столбец в списке) в виде ссылок.The Entity form control displays the values in the SalesOrderId field (the first column in the list) as links.

  8. Включите предварительный просмотр приложения, нажав клавишу F5, и выберите ссылку из списка заказов на продажу.Preview the app by pressing F5, and then click or tap a link in the list of sales orders.

    Откроется второй экран, отображающий сведения об указанном заказе на продажу.The second screen opens and displays the details of the sales order that you specified.

    Чтобы отобразить сведения о другом заказе на продажу, выберите значок стрелки назад, чтобы вернуться к списку, после чего выберите ссылку заказа, сведения о котором требуется отобразить.To display the details of a different sales order, click or tap the back arrow to navigate back to the list, and then click or tap the link of the order for which you want to show details.

Для свойства Item формы SalesOrderDetailsForm задано значение SalesOrderListForm.Selected, чтобы форма SalesOrderDetailsForm отображала сведения о записи, выбранной пользователем в форме SalesOrderListForm.The Item property of the SalesOrderDetailsForm is set to SalesOrderListForm.Selected so that SalesOrderDetailsForm shows details about the record that the user selects in SalesOrderListForm. Можно также получить контекст выбранной записи, воспользовавшись переменной контекста NavigationContext, которая автоматически создается во время настройки поля для перехода в области настройки формы.You can also get the context of the selected record by using the NavigationContext context variable, which gets automatically created when you use the form-customization pane to configure a field to navigate.

  1. Задайте для свойства Item формы SalesOrderDetailsForm значение NavigationContext.Set the Item property of SalesOrderDetailsForm to NavigationContext.

  2. Включите предварительный просмотр приложения, нажав клавишу F5, и выберите ссылку из списка заказов на продажу.Preview the app by pressing F5, and then click or tap a link in the list of sales orders.

    Приложение откроет экран SalesOrderDetailsScreen, отображающий сведения об указанном заказе на продажу.The app opens SalesOrderDetailsScreen and displays the details of the sales order that you specified.

Давайте подробнее рассмотрим, как область настройки формы настраивает навигацию и контекст.Let’s dig into how the form-customization pane sets up the navigation and context for us.

Свойство SelectableFields формы SalesOrderListForm задает SalesOrderId в качестве выбираемого поля.The SelectableFields property of the SalesOrderListForm specifies SalesOrderId as a selectable field.

Это было настроено автоматически, когда мы использовали область настройки формы, чтобы настроить поле SalesOrderId для перехода на экран SalesOrderDetailsScreen.This was set up automatically when we used the form-customization pane to make the SalesOrderId field navigate to the SalesOrderDetailsScreen. Поэтому значения в поле SalesOrderId отображаются в виде ссылок.Therefore, the values in the SalesOrderId field appear as links.

В свойстве OnFieldSelect формы SalesOrderListForm задана функция If, которая определяет, когда пользователь выбирает поле SalesOrderID: SalesOrderListForm.SelectedField.SalesOrderId = true.The OnFieldSelect property of the SalesOrderListForm is set to an If function, which determines whether the user clicks or taps the Sales order ID field: SalesOrderListForm.SelectedField.SalesOrderId = true.

Если функция возвращает значение true, то открывается экран SalesOrderDetailsScreen с переменной контекста NavigationContext, которую мы использовали ранее.If the function is evaluated as true, the SalesOrderDetailsScreen opens with the context variable named NavigationContext that we used earlier.

Все это также было настроено автоматически, когда мы использовали область настройки формы, чтобы настроить поле SalesOrderId для перехода на экран SalesOrderDetailsScreen.All this was also set up automatically when we used the form-customization pane to make the SalesOrderId field navigate to the SalesOrderDetailsScreen.

Таким образом, когда пользователь выбирает поле "Sales order ID", функция If возвращает значение true и вызывается функция Navigate с соответствующим контекстом, открывающая экран сведений.Therefore, when the user clicks or taps a sales order ID field, the If function evaluates to true, and the Navigate function is called with the corresponding context, opening the details screen.

Примечание. При использовании области настройки формы NavigationContext определяется автоматически посредством интеллектуальных механизмов.Note: When you use the form-customization pane, the NavigationContext is intelligently determined for you. Когда пользователь щелкает или касается SalesOrderId, для NavigationContext задается значение SalesOrderListForm.Selected, как показано в формуле выше.When the user clicks or taps SalesOrderId, NavigationContext is set to SalesOrderListForm.Selected, as the earlier formula shows. Если бы вместо этого мы указали для навигации поле Account, то переменой NavigationContext присваивалось бы значение SalesOrderListForm.Selected.Account, что обеспечило бы передачу правильного контекста.If we had specified the Account field for navigation instead, NavigationContext would have been set to SalesOrderListForm.Selected.Account, ensuring that the correct context is passed. Однако для использования этого контекста потребовалось бы подключить элемент управления Форма сущности к сущности Account в Common Data Service.However, to consume that context, you would need an Entity form control connected to the Account entity in the Common Data Service.

Изменение и сохранение записиEdit and save a record

Наконец, давайте узнаем, как можно изменить и сохранить запись в элементе управления Форма сущности.Finally let’s look at how we can edit and save a record in an Entity form control.

  1. Добавьте значок изменения на экран SalesOrderDetailsScreen, затем для его свойства OnSelect укажите следующую формулу.On the SalesOrderDetailsScreen, add an edit icon, and then set its OnSelect property to this formula:
    EditForm(SalesOrderDetailsForm)EditForm(SalesOrderDetailsForm)

  2. Добавьте значок галочки рядом со значком изменения, а затем для его свойства OnSelect укажите следующую формулу.Add a checkmark icon next to the edit icon, and then set the OnSelect property of the checkmark icon to this formula:
    SubmitForm(SalesOrderDetailsForm)SubmitForm(SalesOrderDetailsForm)

  3. Включите предварительный просмотр приложения, нажав клавишу F5, выберите ссылку Sales order ID, чтобы просмотреть сведения о заказе на продажу, затем щелкните значок изменения или коснитесь его.Preview the app by pressing F5, click or tap a Sales order ID link to view the details of a sales order, and then click or tap the edit icon.

    Свойству Mode элемента управления Форма сущности присвоено значение FormMode.Edit, чтобы можно было изменить запись.The Mode of the Entity form control is set to FormMode.Edit so that you can edit the record.

  4. Обновите значение Order status, указав значение Invoice.Update the Order status to Invoice.

  5. Обновите значение Sales person, указав значение WRK014.Update the Sales person to WRK014.

    Чтобы облегчить выбор значения поля Sales person, элемент управления Форма сущности автоматически отображает отформатированные результаты поиска.To help you pick the Sales person, the Entity form control automatically renders a rich detailed lookup. Чтобы создать и отобразить эти результаты, элемент управления использует группу полей DefaultLookup сущности Worker в Common Data Service.To generate and display this lookup, the control uses the DefaultLookup field group of the Worker entity in the Common Data Service. Используется сущность Worker, так как типом поля Sales person является Worker.The Worker entity is used because the Sales person field is of type Worker.

  6. Щелкните или коснитесь значка галочки, чтобы сохранить изменения.Click or tap the checkmark icon to save your changes.

Это завершающий шаг данной статьи об использовании элемента управления Форма сущности в приложениях.This step concludes this article on how to use the Entity form control in your apps. Мы надеемся, что представленная здесь информация оказалась полезной для начала работы элементом управления Форма сущности.We hope that you find the information covered here useful to get started using the Entity form control. Мы будем рады получить ваши отзывы об элементе управления Форма сущности и наших усилиях, направленных на то, чтобы помочь вам быстро добавлять многофункциональные формы в свои приложения.We look forward to hearing what you think about the Entity form control and our overall push toward helping you quickly add rich forms to your apps.