Usare il controllo Modulo entitàUse the Entity form control

Creare app più velocemente usando il controllo Modulo entità per aggiungere moduli completi per un'entità di Common Data Service.Create apps faster by using the Entity form control to add rich forms for a Common Data Service entity.

Per un'introduzione al controllo Modulo entità, vedere questo post di blog: New entity form control (experimental feature) for Common Data Service (Nuovo controllo Modulo entità per Common Data Service (funzionalità sperimentale)).For an introduction to the Entity form control, see this blog post: New entity form control (experimental feature) for Common Data Service.

Importante: tenere in considerazione la natura sperimentale del controllo Modulo entità come descritto nel post di blog e usare con attenzione il controllo Modulo entità nelle app di produzione, almeno per il momento.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.

Proprietà chiaveKey properties

Di seguito sono elencate le proprietà chiave di un controllo Modulo entità.Here are the key properties of an Entity form control.

DataSource: specifica l'origine dati che contiene i record da visualizzare.DataSource – Specifies the data source that contains the record(s) that you want to display.
Nota: attualmente sono supportate solo le entità di Common Data Service come origini dati per il controllo Modulo entità.Note: Currently only entities in the Common Data Service are supported as data sources for the Entity form control.

Pattern: specifica lo stile del modulo che si vuole visualizzare nel controllo Modulo entità.Pattern – Specifies the style of the form that you want to display in the Entity form control. Impostare questa proprietà tramite l'enumerazione FormPattern.Set this property by using the FormPattern enumeration.

  • FormPattern.List: visualizza un elenco tabulare dei record.FormPattern.List – Displays a tabular list of records.
  • FormPattern.CardList: visualizza un elenco dei record sotto forma di scheda.FormPattern.CardList – Displays a card list of records.
  • FormPattern.Details: visualizza un modulo per visualizzare o modificare i dettagli di un singolo record.FormPattern.Details – Displays a form to view or edit the details of a single record.
  • FormPattern.None: non è stato specificato uno stile in modo esplicito.FormPattern.None – No style has been explicitly specified. Imposta il valore predefinito List per le app per tablet e CardList per le app per telefoni.Defaults to List for tablet apps and CardList for phone apps.

Item: specifica il record nell'origine dati che il controllo Modulo entità deve visualizzare.Item – Specifies the record in the data source that the Entity form control should display. Questa proprietà viene usata solo quando Pattern è impostato su FormPattern.Details.This property is used only when Pattern is set to FormPattern.Details.

Selected: ottiene il record attualmente selezionato.Selected – Gets the record that’s currently selected.
Esempio: se il controllo Modulo entità visualizza un elenco di record relativi agli ordini di vendita, la proprietà Selected visualizzerà il record attualmente selezionato.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. È anche possibile accedere a un campo all'interno di un record.You can also access a field within a record. Ad esempio, specificare il valore del campo Account del record selezionato come Selected.Account.(For example, specify the value of the Account field of the selected record as Selected.Account.)

SelectableFields: specifica quali campi devono essere visualizzati come collegamenti.SelectableFields – Specifies which fields should appear as links. Impostare il valore di questa proprietà usando la sintassi seguente:Set the value of this property by using this syntax:
{Field1Name : true, Field2Name : true}{Field1Name : true, Field2Name : true}
Esempio: se si vuole che i campi SalesOrderId e Account vengono visualizzati come collegamenti in un modulo, impostare la proprietà SelectableFields del modulo sul valore seguente: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: determina quale campo è stato selezionato o toccato.SelectedField – Determines which field was clicked or tapped. Questo vale solo per i campi specificati come SelectableFields.This applies only to the fields specified as SelectableFields.
Esempio: se si imposta la proprietà SelectableFields su {SalesOrderId: true, l'Account: true} e l'utente tocca o fa clic sul campo Account SelectedField.Account viene impostato su 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: determina la risposta di un'app quando l'utente tocca o fa clic su un campo.OnFieldSelect – How an app responds when the user clicks or taps a field. Questo vale solo per i campi specificati come SelectableFields.This applies only to the fields specified as SelectableFields.

Mode: determina la modalità del modulo.Mode – Determines the mode of the form. Per modificare la modalità, usare la funzione ViewForm, EditForm o NewForm.To change the mode, use the ViewForm, EditForm, or NewForm function. Queste funzioni possono essere usate solo quando la proprietà Pattern è impostata su FormPattern.Details.These functions work only when the Pattern property is set to FormPattern.Details. Impostare il valore della proprietà Mode su un valore dell'enumerazione FormMode.Set the value of the Mode property to a value of the FormMode enumeration.

  • FormMode.View: consente agli utenti di visualizzare ma non di modificare o aggiungere un record.FormMode.View – Allows users to view but not edit or add a record.
  • FormMode.Edit: consente agli utenti di modificare un record.FormMode.Edit – Allows users to edit a record.
  • FormMode.New: consente agli utenti di aggiungere un record.FormMode.New – Allows users to add a record.

OnSuccess: determina la risposta di un'app quando un'operazione sui dati è stata completata.OnSuccess – How an app responds when a data operation has been successful.

OnFailure: determina la risposta di un'app quando un'operazione sui dati non è stata completata.OnFailure - How an app responds when a data operation has been unsuccessful.

Unsaved: determina se un record che un utente sta modificando contiene modifiche non salvate.Unsaved – Determines whether a record that a user is editing has unsaved changes.

È possibile usare queste funzioni condivise con il controllo Modulo entità o con il controllo Modifica modulo.You can use these shared functions with either the Entity form control or the Edit form control. Queste funzioni possono essere usate con il controllo Modulo entità solo quando la proprietà Pattern è impostata su FormPattern.Details.These functions work with the Entity form control only when its Pattern property is set to FormPattern.Details.

ViewForm: imposta la proprietà Mode di un controllo Modulo entità su FormMode.View.ViewForm – Sets the Mode property of an Entity form control to FormMode.View.

EditForm: imposta la proprietà Mode di un controllo Modulo entità su FormMode.Edit.EditForm- Sets the Mode property of an Entity form control to FormMode.Edit.

NewForm: imposta la proprietà Mode di un controllo Modulo entità su FormMode.New.NewForm - Sets the Mode property of an Entity form control to FormMode.New.

SubmitForm: salva le modifiche quando un utente modifica un record in un controllo Modulo entità.SubmitForm - Saves changes when a user edits a record in an Entity form control.

ResetForm: ignora le modifiche non salvate quando un utente modifica un record in un controllo Modulo entità.ResetForm - Abandons unsaved changes when a user edits a record in an Entity form control.

Dopo una panoramica delle varie proprietà e funzioni, è possibile vederne il funzionamento.Now that you have an overview of the various properties and functions, let’s look at them in action.

Nota: se non si ha l'accesso a un database di Common Data Service, crearne uno prima di iniziare a eseguire la procedura seguente.Note: If you don’t have access to a Common Data Service database, create one before you start to follow these steps.

Visualizzare un elenco di recordDisplay a list of records

Le cinque procedure seguenti illustrano un unico esempio dettagliato su come usare i controlli di Modulo entità.The next five procedures provide a single, end-to-end example of how to use Entity form controls. In questa procedura aggiungere un modulo contenente un elenco di ordini di vendita.In this procedure, add a form that shows a list of sales orders.

  1. Creare un'app vuota per tablet.Create a blank tablet app.

  2. Rinominare la prima schermata SalesOrderListScreen.Rename the first screen SalesOrderListScreen.

  3. Nella scheda Inserisci toccare o fare clic su Moduli e toccare o fare clic su Modulo entità (sperimentale).On the Insert tab, click or tap Forms, and then click or tap Entity form (experimental).

    Un controllo Modulo entità viene aggiunto alla schermata.An Entity form control is added to the screen.

  4. Rinominare il controllo Modulo entità SalesOrderListForme ridimensionarlo in modo da coprire l'intera schermata.Rename the Entity form control SalesOrderListForm, and resize it to cover the entire screen.
  5. Nel riquadro di destra toccare o fare clic sull'icona del database accanto al testo Non sono state selezionate origini dati e toccare o fare clic su Aggiungi un'origine dati.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. Nell'elenco delle connessioni toccare o fare clic sulla connessione per il database in questione.In the list of connections, click or tap the connection for your database.

  7. Nell'elenco di entità toccare o fare clic su Sales order e toccare o fare clic su Connetti.In the list of entities, click or tap Sales order, and then click or tap Connect.

    È stata creata un'origine dati per l'entità Sales order e la proprietà DataSource di SalesOrderListForm è impostata su tale origine dati.A data source for the Sales order entity is created, and the DataSource property of the SalesOrderListForm is set to that data source.

    Il controllo Modulo entità visualizza un elenco di ordini di vendita.The Entity form control shows a list of sales orders. Tramite il controllo Modulo entità, è stato possibile visualizzare rapidamente un modulo elenco senza doverlo compilare manualmente.By using the Entity form control, you quickly displayed a list form without having to manually build it.

    La proprietà Pattern per il controllo Modulo entità non è stata impostata e viene pertanto impostata sul valore predefinito List.You didn’t set the Pattern property for the Entity form control, so it defaults to the List pattern. Per visualizzare il modulo elenco viene anche usato il gruppo di campi DefaultList dell'entità Sales order.In addition, the DefaultList field group of the Sales order entity is used to display the list form. Essendo anche dinamico, il modulo rifletterà automaticamente qualsiasi modifica apportata al gruppo di campi.The form is also dynamic and will automatically reflect any change in the field group.

  8. (Facoltativo) Visualizzare il gruppo di campi DefaultList dell'entità Sales order:(Optional) View the DefaultList field group of the Sales order entity:

    1. Accedere a powerapps.com, toccare o fare clic su Common Data Service nel riquadro di spostamento a sinistra e toccare o fare clic su Entità.Sign in to powerapps.com, click or tap Common Data Service in the left navigation pane, and then click or tap Entities.
    2. Nell'elenco di entità toccare o fare clic su Sales order, toccare o fare clic sulla scheda Gruppi di campi e toccare o fare clic sul gruppo di campi 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.

      I campi nell'elenco degli ordini di vendita corrispondono a quelli elencati di seguito.The fields in the sales order list match those listed here.

      In Common Data Service è possibile modificare i gruppi di campi per le entità personalizzate (ma non per le entità standard) e cambiare i campi visualizzati nei moduli corrispondenti che il controllo Modulo entità visualizza.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. E soprattutto, qualsiasi modifica apportata al gruppo di campi si riflette automaticamente in tutte le app che usano un controllo Modulo entità per visualizzare il modulo corrispondente.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.

Visualizzare i dettagli di un recordDisplay the details of a record

Aggiungiamo un altro controllo Modulo entità per visualizzare i dettagli dell'ordine di vendita selezionato nell'elenco creato in precedenza.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. Ridimensionare SalesOrderListForm per coprire metà della schermata e aggiungere un secondo controllo Modulo entità per coprire l'altra metà.Resize SalesOrderListForm to cover half the screen, and add a second Entity form control to cover the other half of the screen.

  2. Rinominare il secondo controllo Modulo entità SalesOrderDetailsForm e connetterlo all'origine dati Sales order creata in precedenza.Rename the second Entity form control SalesOrderDetailsForm, and connect it to the Sales order data source that you created earlier.

  3. Impostare la proprietà Pattern di SalesOrderDetailsForm su FormPattern.Details.Set the Pattern property of SalesOrderDetailsForm to FormPattern.Details.

    SalesOrderDetailsForm usa il gruppo di campi DefaultDetails dell'entità Sales order per visualizzare il modulo.SalesOrderDetailsForm uses the DefaultDetails field group of the Sales order entity to display the form. Come per SalesOrderListForm, è possibile visualizzare velocemente i dettagli dei record senza dover creare manualmente un modulo.As with the SalesOrderListForm, you can quickly show record details without having to manually build a form.

  4. Impostare la proprietà Item di SalesOrderDetailsForm su SalesOrderListForm.Selected.Set the Item property of SalesOrderDetailsForm to SalesOrderListForm.Selected.

    SalesOrderDetailsForm visualizzerà i dettagli del record che l'utente seleziona o tocca in SalesOrderListForm.SalesOrderDetailsForm will display the details of the record that the user clicks or taps in SalesOrderListForm.

  5. Visualizzare in anteprima l'app premendo F5 e toccare o fare clic su un ordine di vendita nell'elenco a sinistra.Preview the app by pressing F5, and then click or tap a sales order in the list on the left.

    I dettagli dell'ordine selezionato vengono visualizzati a destra.The details of the order that you selected appear on the right side.

Configurare un campo per passare a un'altra schermataConfigure a field to navigate to another screen

Aggiungiamo ora più schermate all'app e configuriamo i campi in un controllo Modulo entità per passare a un'altra schermata nell'app quando l'utente tocca o fa clic su un campo.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. Aggiungere una seconda schermata all'app e rinominarla SalesOrderDetailsScreen.Add a second screen to the app, and rename the screen SalesOrderDetailsScreen.
  2. Tagliare SalesOrderDetailsForm, incollarlo in SalesOrderDetailsScreen e ridimensionare il modulo per coprire la maggior parte della schermata, lasciando spazio sufficiente per un'icona in alto.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. Aggiungere l'icona di una freccia indietro nell'angolo in alto a sinistra di SalesOrderDetailsScreen.Add a back-arrow icon near the upper-left corner of SalesOrderDetailsScreen.
  4. Impostare la proprietà OnSelect dell'icona della freccia indietro sulla funzione Back .Set the OnSelect property of the back-arrow icon to the Back function.

  5. In SalesOrderListScreen ridimensionare SalesOrderListForm per coprire l'intera schermata.On the SalesOrderListScreen, resize the SalesOrderListForm to cover the entire screen.
  6. Toccare o fare clic su SalesOrderListForm per selezionarlo.Click or tap the SalesOrderListForm to select it.
  7. Nel riquadro di destra, sotto Campi, impostare SalesOrderId per passare a SalesOrderDetailsScreen.In the right-hand pane, under Fields, set SalesOrderId to navigate to the SalesOrderDetailsScreen.

    Il controllo Modulo entità visualizzerà i valori del campo SalesOrderId (la prima colonna nell'elenco) come collegamenti.The Entity form control displays the values in the SalesOrderId field (the first column in the list) as links.

  8. Visualizzare in anteprima l'app premendo F5 e toccare o fare clic su un collegamento nell'elenco degli ordini di vendita.Preview the app by pressing F5, and then click or tap a link in the list of sales orders.

    Si aprirà una seconda schermata che visualizzerà i dettagli dell'ordine di vendita specificato.The second screen opens and displays the details of the sales order that you specified.

    Per visualizzare i dettagli di un altro ordine di vendita, toccare o fare clic sulla freccia indietro per tornare all'elenco, toccare o fare clic sul collegamento dell'ordine per il quale si vuole visualizzare i dettagli.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 proprietà Item di SalesOrderDetailsForm è impostata su SalesOrderListForm.Selected. In questo modo SalesOrderDetailsForm visualizza i dettagli del record che l'utente seleziona in 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. È anche possibile ottenere il contesto del record selezionato usando la variabile di contesto NavigationContext, che viene creata automaticamente quando si usa il riquadro di personalizzazione del modulo per configurare un campo da esplorare.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. Impostare la proprietà Item di SalesOrderDetailsForm su NavigationContext.Set the Item property of SalesOrderDetailsForm to NavigationContext.

  2. Visualizzare in anteprima l'app premendo F5 e toccare o fare clic su un collegamento nell'elenco degli ordini di vendita.Preview the app by pressing F5, and then click or tap a link in the list of sales orders.

    L'app aprirà SalesOrderDetailsScreen e visualizzerà i dettagli dell'ordine di vendita specificato.The app opens SalesOrderDetailsScreen and displays the details of the sales order that you specified.

Passiamo ora a esaminare come impostare lo spostamento e il contesto usando il riquadro di personalizzazione del modulo.Let’s dig into how the form-customization pane sets up the navigation and context for us.

La proprietà SelectableFields di SalesOrderListForm specifica SalesOrderId come campo selezionabile.The SelectableFields property of the SalesOrderListForm specifies SalesOrderId as a selectable field.

Questo è stato configurato automaticamente quando è stato usato il riquadro di personalizzazione del modulo per passare dal campo SalesOrderId a SalesOrderDetailsScreen.This was set up automatically when we used the form-customization pane to make the SalesOrderId field navigate to the SalesOrderDetailsScreen. Di conseguenza, i valori del campo SalesOrderId vengono visualizzati come collegamenti.Therefore, the values in the SalesOrderId field appear as links.

La proprietà OnFieldSelect di SalesOrderListForm è impostata su una funzione If , che determina se l'utente tocca o fa clic sul campo Sales order ID: 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.

Se la funzione dà come risultato vero, SalesOrderDetailsScreen viene aperto con la variabile di contesto denominata NavigationContext usata in precedente.If the function is evaluated as true, the SalesOrderDetailsScreen opens with the context variable named NavigationContext that we used earlier.

Anche questo è stato configurato automaticamente quando è stato usato il riquadro di personalizzazione del modulo per passare dal campo SalesOrderId a SalesOrderDetailsScreen.All this was also set up automatically when we used the form-customization pane to make the SalesOrderId field navigate to the SalesOrderDetailsScreen.

Pertanto, quando l'utente tocca o fa clic su un campo Sales order ID, la funzione If dà come risultato vero, viene chiamata la funzione Navigate con il contesto corrispondente e si apre la schermata dei dettagli.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.

Nota: quando si usa il riquadro di personalizzazione del modulo, NavigationContext viene determinato automaticamente.Note: When you use the form-customization pane, the NavigationContext is intelligently determined for you. Quando l'utente tocca o fa clic su SalesOrderId, NavigationContext viene impostato su SalesOrderListForm.Selected, come illustrato nella formula precedente.When the user clicks or taps SalesOrderId, NavigationContext is set to SalesOrderListForm.Selected, as the earlier formula shows. Se invece fosse stato specificato il campo Account per lo spostamento, NavigationContext sarebbe stato impostato su SalesOrderListForm.Selected.Account, in modo da garantire il passaggio del contesto corretto.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. Tuttavia, per usare tale contesto, sarebbe necessario un controllo Modulo entità connesso all'entità Account in 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.

Modificare e salvare un recordEdit and save a record

Vediamo infine come poter modificare e salvare un record in un controllo Modulo entità.Finally let’s look at how we can edit and save a record in an Entity form control.

  1. In SalesOrderDetailsScreen aggiungere un'icona di modifica e impostare la relativa proprietà OnSelect su questa formula:On the SalesOrderDetailsScreen, add an edit icon, and then set its OnSelect property to this formula:
    EditForm(SalesOrderDetailsForm)EditForm(SalesOrderDetailsForm)

  2. Aggiungere un'icona di segno di spunta accanto all'icona di modifica e impostare la proprietà OnSelect dell'icona del segno di spunta su questa formula: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. Visualizzare in anteprima l'app premendo F5, toccare o fare clic su un collegamento Sales order ID per visualizzare i dettagli di un ordine di vendita e toccare o fare clic sull'icona di modifica.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.

    La proprietà Mode del controllo Modulo entità è impostata su FormMode.Edit in modo che sia possibile modificare il record.The Mode of the Entity form control is set to FormMode.Edit so that you can edit the record.

  4. Aggiornare Order status a Invoice.Update the Order status to Invoice.

  5. Aggiornare Sales person a WRK014.Update the Sales person to WRK014.

    Per selezionare Sales person, il controllo Modulo entità esegue automaticamente il rendering di una ricerca dettagliata completa.To help you pick the Sales person, the Entity form control automatically renders a rich detailed lookup. Per generare e visualizzare la ricerca, il controllo usa il gruppo di campi DefaultLookup dell'entità Worker in 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. Viene usata l'entità Worker perché il campo Sales person è di tipo Worker.The Worker entity is used because the Sales person field is of type Worker.

  6. Selezionare o toccare l'icona del segno di spunta per salvare le modifiche.Click or tap the checkmark icon to save your changes.

Con questo passaggio si conclude l'articolo su come usare il controllo Modulo entità nelle app.This step concludes this article on how to use the Entity form control in your apps. Ci auguriamo che queste informazioni siano utili per iniziare a usare il controllo Modulo entità.We hope that you find the information covered here useful to get started using the Entity form control. Saremo lieti di ricevere commenti sul controllo Modulo entità e sul nostro generale tentativo di velocizzare l'aggiunta di moduli completi alle app.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.