Creare app più velocemente usando il controllo Modulo entità per aggiungere moduli completi per un'entità di Common Data Service.

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)).

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.

Proprietà chiave

Di seguito sono elencate le proprietà chiave di un controllo Modulo entità.

DataSource: specifica l'origine dati che contiene i record da visualizzare.
Nota: attualmente sono supportate solo le entità di Common Data Service come origini dati per il controllo Modulo entità.

Pattern: specifica lo stile del modulo che si vuole visualizzare nel controllo Modulo entità. Impostare questa proprietà tramite l'enumerazione FormPattern.

  • FormPattern.List: visualizza un elenco tabulare dei record.
  • FormPattern.CardList: visualizza un elenco dei record sotto forma di scheda.
  • FormPattern.Details: visualizza un modulo per visualizzare o modificare i dettagli di un singolo record.
  • FormPattern.None: non è stato specificato uno stile in modo esplicito. Imposta il valore predefinito List per le app per tablet e CardList per le app per telefoni.

Item: specifica il record nell'origine dati che il controllo Modulo entità deve visualizzare. Questa proprietà viene usata solo quando Pattern è impostato su FormPattern.Details.

Selected: ottiene il record attualmente selezionato.
Esempio: se il controllo Modulo entità visualizza un elenco di record relativi agli ordini di vendita, la proprietà Selected visualizzerà il record attualmente selezionato. È anche possibile accedere a un campo all'interno di un record. Ad esempio, specificare il valore del campo Account del record selezionato come Selected.Account.

SelectableFields: specifica quali campi devono essere visualizzati come collegamenti. Impostare il valore di questa proprietà usando la sintassi seguente:
{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:
{SalesOrderId : true, Account : true}

SelectedField: determina quale campo è stato selezionato o toccato. Questo vale solo per i campi specificati come 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.

OnFieldSelect: determina la risposta di un'app quando l'utente tocca o fa clic su un campo. Questo vale solo per i campi specificati come SelectableFields.

Mode: determina la modalità del modulo. Per modificare la modalità, usare la funzione ViewForm, EditForm o NewForm. Queste funzioni possono essere usate solo quando la proprietà Pattern è impostata su FormPattern.Details. Impostare il valore della proprietà Mode su un valore dell'enumerazione FormMode.

  • FormMode.View: consente agli utenti di visualizzare ma non di modificare o aggiungere un record.
  • FormMode.Edit: consente agli utenti di modificare un record.
  • FormMode.New: consente agli utenti di aggiungere un record.

OnSuccess: determina la risposta di un'app quando un'operazione sui dati è stata completata.

OnFailure: determina la risposta di un'app quando un'operazione sui dati non è stata completata.

Unsaved: determina se un record che un utente sta modificando contiene modifiche non salvate.

Funzioni correlate

È possibile usare queste funzioni condivise con il controllo Modulo entità o con il controllo Modifica modulo. Queste funzioni possono essere usate con il controllo Modulo entità solo quando la proprietà Pattern è impostata su FormPattern.Details.

ViewForm: imposta la proprietà Mode di un controllo Modulo entità su FormMode.View.

EditForm: imposta la proprietà Mode di un controllo Modulo entità su FormMode.Edit.

NewForm: imposta la proprietà Mode di un controllo Modulo entità su FormMode.New.

SubmitForm: salva le modifiche quando un utente modifica un record in un controllo Modulo entità.

ResetForm: ignora le modifiche non salvate quando un utente modifica un record in un controllo Modulo entità.

Dopo una panoramica delle varie proprietà e funzioni, è possibile vederne il funzionamento.

Nota: se non si ha l'accesso a un database di Common Data Service, crearne uno prima di iniziare a eseguire la procedura seguente.

Visualizzare un elenco di record

Le cinque procedure seguenti illustrano un unico esempio dettagliato su come usare i controlli di Modulo entità. In questa procedura aggiungere un modulo contenente un elenco di ordini di vendita.

  1. Creare un'app vuota per tablet.

  2. Rinominare la prima schermata SalesOrderListScreen.

  3. Nella scheda Inserisci toccare o fare clic su Moduli e toccare o fare clic su Modulo entità (sperimentale).

    Un controllo Modulo entità viene aggiunto alla schermata.

  4. Rinominare il controllo Modulo entità SalesOrderListForme ridimensionarlo in modo da coprire l'intera schermata.

  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.

  6. Nell'elenco delle connessioni toccare o fare clic sulla connessione per il database in questione.

  7. Nell'elenco di entità toccare o fare clic su Sales order e toccare o fare clic su Connetti.

    È stata creata un'origine dati per l'entità Sales order e la proprietà DataSource di SalesOrderListForm è impostata su tale origine dati.

    Il controllo Modulo entità visualizza un elenco di ordini di vendita. Tramite il controllo Modulo entità, è stato possibile visualizzare rapidamente un modulo elenco senza doverlo compilare manualmente.

    La proprietà Pattern per il controllo Modulo entità non è stata impostata e viene pertanto impostata sul valore predefinito List. Per visualizzare il modulo elenco viene anche usato il gruppo di campi DefaultList dell'entità Sales order. Essendo anche dinamico, il modulo rifletterà automaticamente qualsiasi modifica apportata al gruppo di campi.

  8. (Facoltativo) Visualizzare il gruppo di campi DefaultList dell'entità Sales order:

    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à.
    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.

    I campi nell'elenco degli ordini di vendita corrispondono a quelli elencati di seguito.

    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. 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.

Visualizzare i dettagli di un record

Aggiungiamo un altro controllo Modulo entità per visualizzare i dettagli dell'ordine di vendita selezionato nell'elenco creato in precedenza.

  1. Ridimensionare SalesOrderListForm per coprire metà della schermata e aggiungere un secondo controllo Modulo entità per coprire l'altra metà.

  2. Rinominare il secondo controllo Modulo entità SalesOrderDetailsForm e connetterlo all'origine dati Sales order creata in precedenza.

  3. Impostare la proprietà Pattern di SalesOrderDetailsForm su FormPattern.Details.

    SalesOrderDetailsForm usa il gruppo di campi DefaultDetails dell'entità Sales order per visualizzare il modulo. Come per SalesOrderListForm, è possibile visualizzare velocemente i dettagli dei record senza dover creare manualmente un modulo.

  4. Impostare la proprietà Item di SalesOrderDetailsForm su SalesOrderListForm.Selected.

    SalesOrderDetailsForm visualizzerà i dettagli del record che l'utente seleziona o tocca in SalesOrderListForm.

  5. Visualizzare in anteprima l'app premendo F5 e toccare o fare clic su un ordine di vendita nell'elenco a sinistra.

    I dettagli dell'ordine selezionato vengono visualizzati a destra.

Configurare un campo per passare a un'altra schermata

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.

  1. Aggiungere una seconda schermata all'app e rinominarla 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.

  3. Aggiungere l'icona di una freccia indietro nell'angolo in alto a sinistra di SalesOrderDetailsScreen.

  4. Impostare la proprietà OnSelect dell'icona della freccia indietro sulla funzione Back .

  5. In SalesOrderListScreen ridimensionare SalesOrderListForm per coprire l'intera schermata.

  6. Toccare o fare clic su SalesOrderListForm per selezionarlo.

  7. Nel riquadro di destra, sotto Campi, impostare SalesOrderId per passare a SalesOrderDetailsScreen.

    Il controllo Modulo entità visualizzerà i valori del campo SalesOrderId (la prima colonna nell'elenco) come collegamenti.

  8. Visualizzare in anteprima l'app premendo F5 e toccare o fare clic su un collegamento nell'elenco degli ordini di vendita.

    Si aprirà una seconda schermata che visualizzerà i dettagli dell'ordine di vendita specificato.

    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.

Spostarsi con una variabile di contesto

La proprietà Item di SalesOrderDetailsForm è impostata su SalesOrderListForm.Selected. In questo modo SalesOrderDetailsForm visualizza i dettagli del record che l'utente seleziona 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.

  1. Impostare la proprietà Item di SalesOrderDetailsForm su NavigationContext.

  2. Visualizzare in anteprima l'app premendo F5 e toccare o fare clic su un collegamento nell'elenco degli ordini di vendita.

    L'app aprirà SalesOrderDetailsScreen e visualizzerà i dettagli dell'ordine di vendita specificato.

Passiamo ora a esaminare come impostare lo spostamento e il contesto usando il riquadro di personalizzazione del modulo.

La proprietà SelectableFields di SalesOrderListForm specifica SalesOrderId come campo selezionabile.

Questo è stato configurato automaticamente quando è stato usato il riquadro di personalizzazione del modulo per passare dal campo SalesOrderId a SalesOrderDetailsScreen. Di conseguenza, i valori del campo SalesOrderId vengono visualizzati come collegamenti.

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.

Se la funzione dà come risultato vero, SalesOrderDetailsScreen viene aperto con la variabile di contesto denominata NavigationContext usata in precedente.

Anche questo è stato configurato automaticamente quando è stato usato il riquadro di personalizzazione del modulo per passare dal campo SalesOrderId a 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.

Nota: quando si usa il riquadro di personalizzazione del modulo, NavigationContext viene determinato automaticamente. Quando l'utente tocca o fa clic su SalesOrderId, NavigationContext viene impostato su SalesOrderListForm.Selected, come illustrato nella formula precedente. 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. Tuttavia, per usare tale contesto, sarebbe necessario un controllo Modulo entità connesso all'entità Account in Common Data Service.

Modificare e salvare un record

Vediamo infine come poter modificare e salvare un record in un controllo Modulo entità.

  1. In SalesOrderDetailsScreen aggiungere un'icona di modifica e impostare la relativa proprietà OnSelect su questa formula:
    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:
    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.

    La proprietà Mode del controllo Modulo entità è impostata su FormMode.Edit in modo che sia possibile modificare il record.

  4. Aggiornare Order status a Invoice.

  5. Aggiornare Sales person a WRK014.

    Per selezionare Sales person, il controllo Modulo entità esegue automaticamente il rendering di una ricerca dettagliata completa. Per generare e visualizzare la ricerca, il controllo usa il gruppo di campi DefaultLookup dell'entità Worker in Common Data Service. Viene usata l'entità Worker perché il campo Sales person è di tipo Worker.

  6. Selezionare o toccare l'icona del segno di spunta per salvare le modifiche.

Con questo passaggio si conclude l'articolo su come usare il controllo Modulo entità nelle app. Ci auguriamo che queste informazioni siano utili per iniziare a usare il controllo Modulo entità. Saremo lieti di ricevere commenti sul controllo Modulo entità e sul nostro generale tentativo di velocizzare l'aggiunta di moduli completi alle app.