Nuovi controlli Modulo modifica e Modulo visualizzazione in Power Apps
Visualizza, modifica o crea un record in un'origine dati.
Descrizione
Se aggiungi un controllo Modulo visualizzazione, l'utente può visualizzare tutti i campi di un record o solo i campi specificati. Se aggiungi un controllo Modulo modifica, l'utente può modificare tali campi, creare un record e salvare le modifiche apportate a un'origine dati.
Se aggiungi un controllo Raccolta, puoi configurarlo in modo da visualizzare una tabella in un'origine dati e quindi configurare un modulo per visualizzare un record qualsiasi selezionato dall'utente nella raccolta. Puoi inoltre aggiungere uno o più controlli Pulsante che l'utente può selezionare per salvare le modifiche, annullarle e creare un record. L'uso congiunto di controlli ti consente di creare una soluzione completa.
Limiti
Il controllo Modulo presenta le seguenti limitazioni:
- Non puoi copiare e incollare moduli in schede dati. Questo per evitare che vengano create determinate combinazioni di controlli che mettono a rischio la stabilità e le prestazioni dell'app.
Selezione di record
Per entrambi i tipi di modulo, imposta la relativa proprietà DataSource su una tabella di record e imposta la proprietà Item del modulo per visualizzare un record specifico in tale tabella. Ad esempio, puoi impostare la proprietà Item di un modulo sulla proprietà SelectedItem di un controllo Raccolta. Quando l'utente seleziona un record nella raccolta, lo stesso record viene visualizzato nel modulo, se il modulo non mostra più campi. Se l'utente ritorna alla raccolta e seleziona un altro record, la proprietà SelectedItem della raccolta cambia. Questa modifica aggiorna la proprietà Item del modulo, che mostra il record appena selezionato.
Puoi anche impostare la proprietà Item di un modulo usando un controllo Elenco a discesa come descritto in Visualizzare, modificare o aggiungere un record o una funzione, ad esempio Lookup o First. Ad esempio, è possibile impostare la proprietà Item su una delle formule seguenti per visualizzare la voce Fabrikam nella tabella Account in Microsoft Dataverse:
First(Accounts)
Lookup(Accounts, "Fabrikam" in name)
Ogni controllo form contiene uno o più controlli Scheda. Impostando la proprietà DataField di una scheda, specifichi il campo che mostra la scheda e altri dettagli.
Creare un record
Quando il controllo Modulo modifica si trova in modalità Modifica, l'utente può aggiornare il record specificato nella proprietà del modulo Item. Se controllata, la proprietà Mode restituisce Modifica.
Quando il controllo Modulo modifica si trova in modalità Nuovo, tuttavia, la proprietà Item viene ignorata. Il modulo non mostra un record esistente. Al contrario, i valori di ogni campo corrispondono ai valori predefiniti dell'origine dati con cui hai configurato il modulo. La funzione NewForm imposta questa modalità per il modulo.
Ad esempio puoi impostare la proprietà Text di un pulsante affinché mostri Nuovo e la relativa proprietà OnSelect su una formula che include la funzione NewForm. Se l'utente seleziona questo pulsante, il modulo attiva la modalità Nuovo in modo che l'utente possa creare un record a partire da valori noti.
Il modulo ritorna alla modalità Modifica se la funzione ResetForm o la funzione SubmitForm vengono eseguite correttamente.
- Puoi impostare la proprietà Text di un pulsante affinché mostri Annulla e la relativa proprietà OnSelect su una formula che include la funzione ResetForm. Se l'utente seleziona questo pulsante, vengono eliminate tutte le modifiche in corso e i valori nel modulo corrispondono, ancora una volta, ai valori predefiniti dell'origine dati.
- Puoi impostare la proprietà Text di un pulsante affinché mostri Salva modifiche e la relativa proprietà OnSelect su una formula che include la funzione SubmitForm. Se l'utente seleziona il pulsante e l'origine dati viene aggiornata, i valori nel modulo vengono riportati ai valori predefiniti dell'origine dati.
Salva modifiche
Se crei un pulsante Salva modifiche come descritto nella sezione precedente, l'utente può creare o aggiornare un record e quindi selezionare questo pulsante per salvare le modifiche all'origine dati. Puoi invece configurare un controllo Immagine o un altro controllo che esegua la stessa attività, così come configuri il controllo con la funzione SubmitForm. In ogni caso, le proprietà Error, ErrorKind, OnSuccess e OnFailure forniscono commenti sul risultato.
Quando viene eseguita la funzione SubmitForm, questa convalida prima i dati che l'utente desidera inviare. Se un campo obbligatorio non contiene un valore o un altro valore non è conforme a un vincolo, viene impostata la proprietà ErrorKind e viene eseguita la funzione OnFailure. Puoi configurare il pulsante Salva modifiche o un altro controllo in modo che l'utente possa selezionarlo solo se i dati sono validi, vale a dire, se la proprietà Valid del modulo è true. Tieni presente che l'utente deve non solo risolvere il problema, ma riselezionare anche il pulsante Salva modifiche o annullare le modifiche selezionando il pulsante Annulla, come descritto in precedenza, per reimpostare le proprietà Error e ErrorKind.
Se i dati superano la convalida, SubmitForm li invia all'origine dati, che può richiedere del tempo a seconda della latenza di rete.
- Se l'invio ha esito positivo, la proprietà Error viene deselezionata, la proprietà ErrorKind viene impostata su ErrorKind.None e la formula OnSuccess viene eseguita. Se l'utente ha creato un record, ovvero, se il modulo era precedentemente in modalità Nuovo, il modulo passa alla modalità Modifica in modo che l'utente possa modificare il record appena creato o un altro record.
- Se l'invio non riesce, la proprietà Error contiene un messaggio di errore descrittivo dell'origine dati che illustra il problema. La proprietà ErrorKind viene impostata in modo appropriato, a seconda del problema e viene eseguita la formula OnFailure.
Alcune origini dati sono in grado di rilevare quando due utenti tentano di aggiornare lo stesso record nello stesso momento. In questo caso, ErrorKind viene impostata su ErrorKind.Conflict, mentre la soluzione consiste nell'aggiornare l'origine dati con le altre modifiche dell'utente e riapplicare la modifica apportata dall'utente.
Suggerimento
Se inserisci un pulsante Annulla nel modulo in modo che l'utente possa annullare le modifiche in corso, aggiungi la funzione ResetForm alle proprietà OnSelect del pulsante anche se la proprietà contiene essa stessa la funzione Navigate per modificare le schermate. In caso contrario, il modulo manterrà le modifiche dell'utente.
Layout
Per impostazione predefinita, le schede vengono inserite in una singola colonna per le app dello smartphone e in tre colonne per le app dei tablet. Puoi specificare il numero di colonne di cui è dotato un modulo e se le schede devono essere bloccate su di esse quando configuri il modulo. Queste impostazioni non vengono esposte come proprietà perché sono usate solo per impostare le proprietà X, Y e Width delle schede.
Per altre informazioni, vedi Informazioni sul layout dei moduli dati.
Proprietà chiave
DataSource: origine dati contenente il record che l'utente mostrerà, modificherà o creerà.
- Se non imposti questa proprietà, l'utente non può visualizzare, modificare o creare un record e non vengono forniti metadati aggiuntivi o una convalida.
DefaultMode: modalità iniziale di un modulo. Vedi la descrizione di Mode sotto per i valori accettabili e i relativi significati.
DisplayMode: la modalità da usare per le schede di dati e i controlli all'interno del modulo.
Derivata dalla proprietà Mode e non può essere impostata in modo indipendente:
Modalità | DisplayMode | Descrizione |
---|---|---|
FormMode.Edit | DisplayMode.Edit | Schede di dati e controlli sono modificabili, pronti per accettare le modifiche apportate a un record. |
FormMode.New | DisplayMode.Edit | Schede di dati e controlli sono modificabili, pronti per accettare un nuovo record. |
FormMode.View | DisplayMode.View | Schede di dati e controlli non sono modificabili ma sono ottimizzati per la visualizzazione. |
Error: un semplice messaggio di errore da visualizzare per questo modulo in caso di errore nella funzione SubmitForm.
- Questa proprietà si applica solo al controllo Modulo modifica.
- Viene modificata solo quando viene eseguita la funzione SubmitForm, EditForm o ResetForm.
- Se non si verifica alcun errore, questa proprietà è vuota ed ErrorKind è impostato su ErrorKind.None.
- Quando possibile, il messaggio di errore restituito sarà nella lingua dell'utente. Alcuni messaggi di errore provengono direttamente dall'origine dati e potrebbero non essere nella lingua dell'utente.
ErrorKind: se si verifica un errore durante l'esecuzione di SubmitForm, indica il tipo di errore che si è verificato.
- Si applica solo a un controllo Modulo modifica (Modifica modulo).
- Questa proprietà ha la stessa enumerazione della funzione Errors. Il controllo Modulo modifica può restituire i valori seguenti:
ErrorKind | Descrizione |
---|---|
ErrorKind.Conflict | È stata apportata allo stesso record una modifica da un altro utente, causando un conflitto di modifiche. Esegui la funzione Refresh per ricaricare il record e riprova la modifica. |
ErrorKind.None | L'errore è di tipo sconosciuto. |
ErrorKind.Sync | L'origine dati ha segnalato un errore. Controlla la proprietà Error per altre informazioni. |
ErrorKind.Validation | È stato rilevato un problema di convalida generale. |
Item: record in DataSource che l'utente mostrerà o modificherà.
LastSubmit: ultimo record inviato correttamente, inclusi eventuali campi generati dal server.
- Questa proprietà si applica solo al controllo Modulo modifica.
- Se l'origine dati genera automaticamente o calcola i campi, ad esempio un campo ID con un numero univoco, la proprietà LastSubmit avrà questo nuovo valore in seguito alla corretta esecuzione di SubmitForm.
- Il valore di questa proprietà è disponibile nella formula OnSuccess.
Mode: il controllo è in modalità Modifica o Nuovo.
Modalità | Descrizione |
---|---|
FormMode.Edit | L'utente può modificare un record usando il modulo. I valori nelle schede del modulo sono precompilati con il record esistente e l'utente può modificarli. Se la funzione SubmitForm viene eseguita correttamente, viene modificato un record esistente. |
FormMode.New | L'utente può creare un record usando il modulo. I valori nei controlli del modulo sono precompilati con le impostazioni predefinite per il record dell'origine dati. Se la funzione SubmitForm viene eseguita correttamente, viene creato un record. |
FormMode.View | L'utente può visualizzare un record usando il modulo. I valori nei controlli del modulo sono precompilati con le impostazioni predefinite per il record dell'origine dati. |
Il modulo passa dalla modalità Nuovo alla modalità Modifica quando si verifica una di queste modifiche:
- Il modulo viene inviato correttamente e viene creato un record. Se la raccolta è impostata per spostare automaticamente la selezione su questo nuovo record, il modulo passerà alla modalità Modifica per il record creato in modo che l'utente possa apportare altre modifiche.
- Viene eseguita la funzione EditForm.
- Viene eseguita la funzione ResetForm. Ad esempio, l'utente può selezionare il pulsante Annulla che è stato configurato con questa funzione.
OnFailure: azioni da eseguire quando un'operazione sui dati non è andata a buon fine.
- Questa proprietà si applica solo al controllo Modulo modifica.
OnReset: azioni da eseguire quando un controllo Modulo modifica viene ripristinato.
- Questa proprietà si applica solo al controllo Modulo modifica.
OnSuccess: azioni da eseguire quando un'operazione sui dati è andata a buon fine.
- Questa proprietà si applica solo al controllo Modulo modifica.
Unsaved: true se il controllo Modulo modifica contiene modifiche dell'utente che non sono state salvate.
- Questa proprietà si applica solo al controllo Modulo modifica.
- Usa questa proprietà per avvertire l'utente prima che perda le modifiche non salvate. Per impedire all'utente di selezionare un altro record in un controllo Raccolta prima di salvare le modifiche apportate al record corrente, imposta la proprietà Disabled della raccolta su Form.Unsaved e, analogamente, disattiva le operazioni di aggiornamento.
Updates: valori da scrivere nuovamente nell'origine dati per un record caricato in un controllo form.
- Questa proprietà si applica solo al controllo Modulo modifica.
- Usa questa proprietà per estrarre i valori dei campi delle schede all'interno del controllo. Puoi quindi usare questi valori per aggiornare manualmente l'origine dati richiamando la funzione Patch o servendoti di un altro metodo esposto da una connessione. Non è necessario usare questa proprietà se usi la funzione SubmitForm.
- Questa proprietà restituisce un record di valori. Ad esempio, se il controllo form contiene i controlli delle schede per i campi Nome e Quantità e i valori della proprietà Update per tali schede restituiscono "Widget" e 10, rispettivamente, la proprietà Updates per il controllo form restituirà { Nome: "Widget", Quantità: 10 }.
Valid: indica se un controllo Scheda o Modulo modifica contiene voci valide pronte per l'invio all'origine dati.
Questa proprietà si applica solo al controllo Modulo modifica.
Una proprietà Valid del controllo Form aggrega le proprietà di Valid di tutti i controlli Scheda nel modulo. Una proprietà Valid del modulo è true solo se i dati in tutte le schede del modulo sono validi; in caso contrario, la proprietà Valid del modulo è false.
Per abilitare un pulsante per il salvataggio delle modifiche solo quando i dati nel modulo sono validi ma non sono ancora stati inviati, imposta la proprietà DisplayMode del pulsante su questa formula:
SubmitButton.DisplayMode = If(IsBlank( Form.Error ) || Form.Valid, DisplayMode.Edit, DisplayMode.Disabled)
Proprietà aggiuntive
BorderColor: colore del bordo di un controllo.
BorderStyle: indica se il bordo di un controllo è Solid (Tinta unita), Dashed (Tratteggiato), Dotted (Punteggiato) o None (Nessuno).
BorderThickness: spessore del bordo di un controllo.
Fill: colore dello sfondo di un controllo.
Height: distanza tra i bordi superiore e inferiore del controllo.
Visible: indica se un controllo viene visualizzato o è nascosto.
Width: distanza tra i bordi sinistro e destro di un controllo.
X: distanza tra il bordo sinistro di un controllo e il bordo sinistro del contenitore padre o della schermata se non c'è un contenitore padre.
Y: distanza tra il bordo superiore di un controllo e il bordo superiore del contenitore padre o della schermata se non c'è un contenitore padre.
Ulteriori informazioni
- Per una panoramica completa sul funzionamento dei moduli, vedi Informazioni sui moduli dati.
- Vedi le informazioni di riferimento sulle formule Power Fx per EditForm.
Linee guida per l'accessibilità
Supporto lettore schermo
- È consigliabile aggiungere un'intestazione al modulo tramite un controllo Etichetta.
Nota
Puoi indicarci le tue preferenze di lingua per la documentazione? Partecipa a un breve sondaggio. (il sondaggio è in inglese)
Il sondaggio richiederà circa sette minuti. Non viene raccolto alcun dato personale (Informativa sulla privacy).