Utiliser le contrôle Entity formUse the Entity form control

Créez des applications plus rapidement en utilisant le contrôle Entity form pour ajouter des formulaires riches pour une entité Common Data Service.Create apps faster by using the Entity form control to add rich forms for a Common Data Service entity.

Pour une introduction au contrôle Entity form, consultez le billet de blog : New entity form control (experimental feature) for Common Data Service (Nouveau contrôle Entity form (fonctionnalité en version expérimentale) pour 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 : n’oubliez pas que le contrôle Entity form est une fonctionnalité en version expérimentale, comme décrit dans le billet de blog, et restez vigilant lorsque vous utilisez le contrôle Entity form dans les applications de production, du moins pour le moment.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.

Principales propriétésKey properties

Voici les propriétés principales d’un contrôle Entity form.Here are the key properties of an Entity form control.

DataSource : spécifie la source de données contenant les enregistrements à afficher.DataSource – Specifies the data source that contains the record(s) that you want to display.
Remarque : actuellement, seules les entités dans Common Data Service sont prises en charge en tant que sources de données pour le contrôle Entity form.Note: Currently only entities in the Common Data Service are supported as data sources for the Entity form control.

Pattern : spécifie le style du formulaire que vous souhaitez afficher dans le contrôle Entity form.Pattern – Specifies the style of the form that you want to display in the Entity form control. Définissez cette propriété à l’aide de l’énumération FormPattern.Set this property by using the FormPattern enumeration.

  • FormPattern.List : affiche une liste tabulaire d’enregistrements.FormPattern.List – Displays a tabular list of records.
  • FormPattern.CardList : affiche une liste d’enregistrements sous forme de carte.FormPattern.CardList – Displays a card list of records.
  • FormPattern.Details : affiche un formulaire pour afficher ou modifier les détails d’un enregistrement unique.FormPattern.Details – Displays a form to view or edit the details of a single record.
  • FormPattern.None : aucun style n’a été spécifié explicitement.FormPattern.None – No style has been explicitly specified. Les valeurs par défaut sont List pour les applications sur tablette et CardList pour les applications sur téléphone.Defaults to List for tablet apps and CardList for phone apps.

Item : spécifie l’enregistrement dans la source de données que le contrôle Entity form doit afficher.Item – Specifies the record in the data source that the Entity form control should display. Cette propriété est utilisée uniquement lorsque Pattern est défini sur FormPattern.Details.This property is used only when Pattern is set to FormPattern.Details.

Selected : obtient l’enregistrement qui est actuellement sélectionné.Selected – Gets the record that’s currently selected.
Exemple : si le contrôle Entity form affiche une liste d’enregistrements de commande, la propriété Selected vous donnera l’enregistrement qui est actuellement sélectionné.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. Vous pouvez également accéder à un champ dans un enregistrement.You can also access a field within a record. (Par exemple, spécifiez la valeur du champ Compte de l’enregistrement sélectionné en tant que Selected.Account.)(For example, specify the value of the Account field of the selected record as Selected.Account.)

SelectableFields : spécifie quels champs doivent apparaître sous forme de liens.SelectableFields – Specifies which fields should appear as links. Définissez la valeur de cette propriété à l’aide de cette syntaxe :Set the value of this property by using this syntax:
{Field1Name : true, Field2Name : true}{Field1Name : true, Field2Name : true}
Exemple : si vous souhaitez que les champs SalesOrderId et Compte s’affichent sous forme de liens dans un formulaire, définissez la propriété SelectableFields de ce formulaire sur la valeur suivante :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 : détermine le champ sur lequel l’utilisateur a cliqué ou appuyé.SelectedField – Determines which field was clicked or tapped. Cela s’applique uniquement aux champs spécifiés en tant que SelectableFields.This applies only to the fields specified as SelectableFields.
Exemple : si vous définissez la propriété SelectableFields sur {SalesOrderId : true, Account : true} et si l’utilisateur clique ou appuie sur le champ Compte, SelectedField.Account est défini sur 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 : façon dont une application répond quand l’utilisateur clique ou appuie sur un champ.OnFieldSelect – How an app responds when the user clicks or taps a field. Cela s’applique uniquement aux champs spécifiés en tant que SelectableFields.This applies only to the fields specified as SelectableFields.

Mode : détermine le mode du formulaire.Mode – Determines the mode of the form. Pour changer le mode, utilisez la fonction ViewForm, EditForm ou NewForm.To change the mode, use the ViewForm, EditForm, or NewForm function. Ces fonctions sont efficaces uniquement lorsque la propriété Pattern est définie sur FormPattern.Details.These functions work only when the Pattern property is set to FormPattern.Details. Définissez la valeur de la propriété Mode sur une valeur de l’énumération FormMode.Set the value of the Mode property to a value of the FormMode enumeration.

  • FormMode.View : permet aux utilisateurs d’afficher un enregistrement, mais pas de le modifier ni d’en ajouter.FormMode.View – Allows users to view but not edit or add a record.
  • FormMode.Edit : permet aux utilisateurs de modifier un enregistrement.FormMode.Edit – Allows users to edit a record.
  • FormMode.New : permet aux utilisateurs d’ajouter un enregistrement.FormMode.New – Allows users to add a record.

OnSuccess : façon dont une application répond lorsqu’une opération de données s’est déroulée correctement.OnSuccess – How an app responds when a data operation has been successful.

OnFailure : façon dont une application répond lorsqu’une opération de données ne s’est pas déroulée correctement.OnFailure - How an app responds when a data operation has been unsuccessful.

Unsaved : détermine si un enregistrement modifié par un utilisateur comporte des modifications non enregistrées.Unsaved – Determines whether a record that a user is editing has unsaved changes.

Vous pouvez utiliser ces fonctions partagées avec le contrôle Entity form ou le contrôle Edit form.You can use these shared functions with either the Entity form control or the Edit form control. Ces fonctions sont efficaces avec le contrôle Entity form uniquement lorsque la propriété Pattern est définie sur FormPattern.Details.These functions work with the Entity form control only when its Pattern property is set to FormPattern.Details.

ViewForm : définit la propriété Mode d’un contrôle Entity form sur FormMode.View.ViewForm – Sets the Mode property of an Entity form control to FormMode.View.

EditForm : définit la propriété Mode d’un contrôle Entity form sur FormMode.Edit.EditForm- Sets the Mode property of an Entity form control to FormMode.Edit.

NewForm : définit la propriété Mode d’un contrôle Entity form sur FormMode.New.NewForm - Sets the Mode property of an Entity form control to FormMode.New.

SubmitForm : enregistre les modifications lorsqu’un utilisateur modifie un enregistrement dans un contrôle Entity form.SubmitForm - Saves changes when a user edits a record in an Entity form control.

ResetForm : ignore les modifications non enregistrées lorsqu’un utilisateur modifie un enregistrement dans un contrôle Entity form.ResetForm - Abandons unsaved changes when a user edits a record in an Entity form control.

Maintenant que vous avez une vue d’ensemble des différentes propriétés et fonctions, observons-les en action.Now that you have an overview of the various properties and functions, let’s look at them in action.

Remarque: si vous n’avez pas accès à une base de données Common Data Service, créez-en une avant de commencer la procédure suivante.Note: If you don’t have access to a Common Data Service database, create one before you start to follow these steps.

Afficher une liste d’enregistrementsDisplay a list of records

Les cinq procédures suivantes fournissent un exemple unique et complet de l’utilisation des contrôles Entity form.The next five procedures provide a single, end-to-end example of how to use Entity form controls. Dans cette procédure, ajoutez un formulaire qui affiche une liste des commandes.In this procedure, add a form that shows a list of sales orders.

  1. Créez une application vide sur tablette.Create a blank tablet app.

  2. Renommez le premier écran SalesOrderListScreen.Rename the first screen SalesOrderListScreen.

  3. Dans l’onglet Insérer, cliquez ou appuyez sur Formulaires, puis sur Entity form (fonctionnalité en version expérimentale).On the Insert tab, click or tap Forms, and then click or tap Entity form (experimental).

    Un contrôle Entity form est ajouté à l’écran.An Entity form control is added to the screen.

  4. Renommez le contrôle Entity form en SalesOrderListForm et redimensionnez-le pour qu’il couvre la totalité de l’écran.Rename the Entity form control SalesOrderListForm, and resize it to cover the entire screen.
  5. Dans le volet de droite, cliquez ou appuyez sur l’icône de la base de données en regard du texte Aucune source de données sélectionnée, puis cliquez ou appuyez sur Ajouter une source de données.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. Dans la liste des connexions, cliquez ou appuyez sur la connexion de votre base de données.In the list of connections, click or tap the connection for your database.

  7. Dans la liste des entités, cliquez ou appuyez sur Commande vente, puis cliquez ou appuyez sur Se connecter.In the list of entities, click or tap Sales order, and then click or tap Connect.

    Une source de données pour l’entité Commande vente est créée, et la propriété DataSource de SalesOrderListForm est définie sur cette source de données.A data source for the Sales order entity is created, and the DataSource property of the SalesOrderListForm is set to that data source.

    Le contrôle Entity form affiche une liste des commandes.The Entity form control shows a list of sales orders. Le contrôle Entity form vous permet d’afficher rapidement un formulaire de liste sans avoir à le générer manuellement.By using the Entity form control, you quickly displayed a list form without having to manually build it.

    Vous n’avez pas défini la propriété Pattern pour le contrôle Entity form, sa valeur par défaut est donc le modèle List.You didn’t set the Pattern property for the Entity form control, so it defaults to the List pattern. En outre, le groupe de champs DefaultList de l’entité Commande vente est utilisé pour afficher le formulaire de liste.In addition, the DefaultList field group of the Sales order entity is used to display the list form. Le formulaire est également dynamique et reflète automatiquement toutes les modifications apportées dans le groupe de champs.The form is also dynamic and will automatically reflect any change in the field group.

  8. (Facultatif) Affichez le groupe de champs DefaultList de l’entité Commande vente :(Optional) View the DefaultList field group of the Sales order entity:

    1. Connectez-vous à powerapps.com, dans le volet de navigation de gauche, cliquez ou appuyez sur Common Data Service, puis sur Entités.Sign in to powerapps.com, click or tap Common Data Service in the left navigation pane, and then click or tap Entities.
    2. Dans la liste des entités, cliquez ou appuyez sur Commande vente, cliquez ou appuyez sur l’onglet Groupes de champs, puis cliquez ou appuyez sur le groupe de champs 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.

      Les champs dans la liste des commandes correspondent à ceux répertoriés ici.The fields in the sales order list match those listed here.

      Dans Common Data Service, vous pouvez modifier les groupes de champs pour les entités personnalisées (mais pas pour les entités standard) pour modifier les champs qui apparaissent sur les formulaires correspondants que le contrôle Entity form affiche.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. Mieux encore, les modifications apportées au groupe de champs sont automatiquement répercutées dans toutes les applications qui utilisent un contrôle Entity form pour afficher le formulaire correspondant.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.

Afficher les détails d’un enregistrementDisplay the details of a record

Nous allons ajouter un autre contrôle Entity form pour afficher les détails de la commande qui est sélectionnée dans la liste que vous avez créée précédemment.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. Redimensionnez SalesOrderListForm pour qu’il couvre la moitié de l’écran et ajoutez un deuxième contrôle Entity form pour qu’il couvre l’autre moitié de l’écran.Resize SalesOrderListForm to cover half the screen, and add a second Entity form control to cover the other half of the screen.

  2. Renommez le deuxième contrôle Entity form en SalesOrderDetailsForm et connectez-le à la source de données Commande vente que vous avez créée précédemment.Rename the second Entity form control SalesOrderDetailsForm, and connect it to the Sales order data source that you created earlier.

  3. Définissez la propriété Pattern de SalesOrderDetailsForm sur FormPattern.Details.Set the Pattern property of SalesOrderDetailsForm to FormPattern.Details.

    SalesOrderDetailsForm utilise le groupe de champs DefaultDetails de l’entité Commande vente pour afficher le formulaire.SalesOrderDetailsForm uses the DefaultDetails field group of the Sales order entity to display the form. Comme avec SalesOrderListForm, vous pouvez afficher rapidement les détails de l’enregistrement sans avoir à créer manuellement un formulaire.As with the SalesOrderListForm, you can quickly show record details without having to manually build a form.

  4. Définissez la propriété Item de SalesOrderDetailsForm sur SalesOrderListForm.Selected.Set the Item property of SalesOrderDetailsForm to SalesOrderListForm.Selected.

    SalesOrderDetailsForm affichera les détails de l’enregistrement sur lequel l’utilisateur clique ou appuie dans SalesOrderListForm.SalesOrderDetailsForm will display the details of the record that the user clicks or taps in SalesOrderListForm.

  5. Affichez un aperçu de l’application en appuyant sur F5, puis cliquez ou appuyez sur une commande dans la liste située à gauche.Preview the app by pressing F5, and then click or tap a sales order in the list on the left.

    Les détails de la commande que vous avez sélectionnée apparaissent sur le côté droit.The details of the order that you selected appear on the right side.

Configurer un champ pour accéder à un autre écranConfigure a field to navigate to another screen

Continuons en ajoutant d’autres écrans à notre application, puis configurons des champs dans un contrôle Entity form pour accéder à un autre écran de l’application lorsque l’utilisateur clique ou appuie sur un champ.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. Ajoutez un deuxième écran à l’application et renommez l’écran en SalesOrderDetailsScreen.Add a second screen to the app, and rename the screen SalesOrderDetailsScreen.
  2. Coupez SalesOrderDetailsForm et collez-le dans SalesOrderDetailsScreen, puis redimensionnez le formulaire afin qu’il couvre une grande partie de l’écran, en laissant suffisamment d’espace pour une icône en haut.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. Ajoutez une icône représentant une flèche de retour à proximité du coin supérieur gauche de SalesOrderDetailsScreen.Add a back-arrow icon near the upper-left corner of SalesOrderDetailsScreen.
  4. Définissez la propriété OnSelect de l’icône de flèche de retour sur la fonction Back.Set the OnSelect property of the back-arrow icon to the Back function.

  5. Sur SalesOrderListScreen, redimensionnez SalesOrderListForm pour qu’il couvre la totalité de l’écran.On the SalesOrderListScreen, resize the SalesOrderListForm to cover the entire screen.
  6. Cliquez ou appuyez sur SalesOrderListForm pour le sélectionner.Click or tap the SalesOrderListForm to select it.
  7. Dans le volet de droite, sous Champs, définissez SalesOrderId pour accéder à SalesOrderDetailsScreen.In the right-hand pane, under Fields, set SalesOrderId to navigate to the SalesOrderDetailsScreen.

    Le contrôle Entity form affiche les valeurs dans le champ SalesOrderId (la première colonne dans la liste) sous forme de liens.The Entity form control displays the values in the SalesOrderId field (the first column in the list) as links.

  8. Affichez un aperçu de l’application en appuyant sur F5, puis cliquez ou appuyez sur un lien dans la liste des commandes.Preview the app by pressing F5, and then click or tap a link in the list of sales orders.

    Le deuxième écran s’ouvre et affiche les détails de la commande que vous avez spécifiée.The second screen opens and displays the details of the sales order that you specified.

    Pour afficher les détails d’une autre commande, cliquez ou appuyez sur la flèche de retour pour revenir à la liste, puis cliquez ou appuyez sur le lien de la commande pour laquelle vous souhaitez afficher les détails.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.

La propriété Item de SalesOrderDetailsForm est définie sur SalesOrderListForm.Selected afin que SalesOrderDetailsForm affiche les détails de l’enregistrement que l’utilisateur sélectionne dans 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. Vous pouvez également obtenir le contexte de l’enregistrement sélectionné à l’aide de la variable contextuelle NavigationContext, qui est créée automatiquement lorsque vous utilisez le volet de personnalisation de formulaire pour configurer un champ auquel accéder.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. Définissez la propriété Item de SalesOrderDetailsForm sur NavigationContext.Set the Item property of SalesOrderDetailsForm to NavigationContext.

  2. Affichez un aperçu de l’application en appuyant sur F5, puis cliquez ou appuyez sur un lien dans la liste des commandes.Preview the app by pressing F5, and then click or tap a link in the list of sales orders.

    L’application ouvre SalesOrderDetailsScreen et affiche les détails de la commande que vous avez spécifiée.The app opens SalesOrderDetailsScreen and displays the details of the sales order that you specified.

Examinons à présent comment le volet de personnalisation de formulaire configure la navigation et le contexte pour nous.Let’s dig into how the form-customization pane sets up the navigation and context for us.

La propriété SelectableFields de SalesOrderListForm spécifie SalesOrderId comme champ sélectionnable.The SelectableFields property of the SalesOrderListForm specifies SalesOrderId as a selectable field.

Cela a été configuré automatiquement lorsque nous avons utilisé le volet de personnalisation de formulaire pour que le champ SalesOrderId atteigne SalesOrderDetailsScreen.This was set up automatically when we used the form-customization pane to make the SalesOrderId field navigate to the SalesOrderDetailsScreen. Par conséquent, les valeurs du champ SalesOrderId s’affichent sous forme de liens.Therefore, the values in the SalesOrderId field appear as links.

La propriété OnFieldSelect de SalesOrderListForm est définie sur une fonction If, qui détermine si l’utilisateur clique ou appuie sur le champ ID commande client : 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.

Si la fonction est évaluée comme étant « true », SalesOrderDetailsScreen s’ouvre avec la variable contextuelle nommée NavigationContext que nous avons utilisée précédemment.If the function is evaluated as true, the SalesOrderDetailsScreen opens with the context variable named NavigationContext that we used earlier.

Tout cela a également été configuré automatiquement lorsque nous avons utilisé le volet de personnalisation de formulaire pour que le champ SalesOrderId atteigne SalesOrderDetailsScreen.All this was also set up automatically when we used the form-customization pane to make the SalesOrderId field navigate to the SalesOrderDetailsScreen.

Par conséquent, lorsque l’utilisateur clique ou appuie sur un champ d’ID de commande, la fonction If est évaluée comme étant « true » et la fonction Navigate est appelée avec le contexte correspondant, ouvrant l’écran contenant les détails.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.

Remarque : lorsque vous utilisez le volet de personnalisation de formulaire, NavigationContext est déterminé de manière intelligente pour vous.Note: When you use the form-customization pane, the NavigationContext is intelligently determined for you. Lorsque l’utilisateur clique ou appuie sur SalesOrderId, NavigationContext est défini sur SalesOrderListForm.Selected, comme le montre la formule précédente.When the user clicks or taps SalesOrderId, NavigationContext is set to SalesOrderListForm.Selected, as the earlier formula shows. Si, à l’inverse, nous avions spécifié le champ Compte pour la navigation, NavigationContext aurait été défini sur SalesOrderListForm.Selected.Account, garantissant la transmission correcte du contexte.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. Toutefois, pour utiliser ce contexte, vous auriez besoin d’un contrôle Entity form connecté à l’entité Compte dans 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.

Modifier et sauvegarder un enregistrementEdit and save a record

Enfin, nous allons voir comment nous pouvons modifier et sauvegarder un enregistrement dans un contrôle Entity form.Finally let’s look at how we can edit and save a record in an Entity form control.

  1. Sur SalesOrderDetailsScreen, ajoutez une icône de modification, puis définissez sa propriété OnSelect sur la formule suivante :On the SalesOrderDetailsScreen, add an edit icon, and then set its OnSelect property to this formula:
    EditForm(SalesOrderDetailsForm)EditForm(SalesOrderDetailsForm)

  2. Ajoutez une icône de coche en regard de l’icône de modification et définissez la propriété OnSelect de l’icône de coche sur la formule suivante :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. Affichez un aperçu de l’application en appuyant sur F5, cliquez ou appuyez sur un lien d’ID de commande client pour afficher les détails d’une commande, puis cliquez ou appuyez sur l’icône de modification.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.

    Le mode du contrôle Entity form est défini sur FormMode.Edit afin que vous puissiez modifier l’enregistrement.The Mode of the Entity form control is set to FormMode.Edit so that you can edit the record.

  4. Mettez à jour le statut de la commande sur Facture.Update the Order status to Invoice.

  5. Mettez à jour le vendeur sur WRK014.Update the Sales person to WRK014.

    Pour vous aider à choisir le vendeur, le contrôle Entity form affiche automatiquement une recherche détaillée plus riche.To help you pick the Sales person, the Entity form control automatically renders a rich detailed lookup. Pour générer et afficher cette recherche, le contrôle utilise le groupe de champs DefaultLookup de l’entité Collaborateur dans 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. L’entité Collaborateur est utilisée, car le champ Vendeur est de type Collaborateur.The Worker entity is used because the Sales person field is of type Worker.

  6. Cliquez ou appuyez sur l’icône de coche pour enregistrer vos modifications.Click or tap the checkmark icon to save your changes.

Cette étape conclut cet article portant sur l’utilisation du contrôle Entity form dans vos applications.This step concludes this article on how to use the Entity form control in your apps. Nous espérons que les informations que nous vous avons données ici vous seront utiles dans votre prise en main du contrôle Entity form.We hope that you find the information covered here useful to get started using the Entity form control. Nous sommes impatients de savoir ce que vous pensez du contrôle Entity form et de nos efforts pour vous aider à ajouter rapidement des formulaires riches à vos applications.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.