Se si usa Power Apps con SharePoint Online i campi di tipo ComboBox, ad esempio Choice o Lookup, vengono correttamente gestiti quando si usa il controllo Forms.

La stessa cosa non avviene con un connettore a SQL Server dove le relazioni uno a molti non vengono risolte automaticamente, vanno configurate a mano.

Aggiunta campo

Ad esempio in una situazione come questa, collegando il controllo Forms alla tabella Questions
schema DB
schema DB
e aggiungendo il campo TeachingDetailId
Aggiunta campo
Aggiunta campo
questo viene riconosciuto come un campo di tipo numerico, senza tener contro della relazione con la tabella TeachingDetails
Tipo numerico
Tipo numerico
il campo viene visualizzato come una TextBox che accetta solo numeri.

Modalità di visualizzazione

Fortunatamente è possibile cambiare la modalità di visualizzazione cliccando sui tre puntini (more Actions) scegliendo il template Allowed values
Modalità DropDown
Modalità DropDown
in questo modo il campo verrà visualizzato come un controllo di tipo DropDown
anche se non ancora configurato.

Configurazione DataCard

Per completare la configurazione è necessario fare l'unlock della DataCard in modo da poter modificare le proprietà Update e AllowedValues
Unlock
Unlock
inserendo i valori corretti in base alla sorgente dati
Valori
Valori
in particolare AllowedValues dovrà contenere la formula che ricava i dati da visualizzare dalla tabella TeachingDetails

Power Apps

AllowedValues = SortByColumns(TeachingDetails, "Name", Ascending)
Va prima aggiunta la tabella TeachingDetails alle sorgenti dati disponibili.
mentre Updates dovrà contenere il campo chiave della tabella preso dal controllo di tipo DropDown dalla DataCard corrente

Power Apps

Updates = DataCardValue33.Selected.TeachingDetailId

Configurazione DropDown

In ultimo va configurata la DropDown (DataCardValue33) per mostrare nell'elenco il campo desiderato, in questo caso Name
Campo visualizzato
Campo visualizzato

Risultato

Il risultato è questo
Risultato finale
Risultato finale
e sul database verrà salvato l'Id corrispondente.

Aggiornamento (Default)

Attenzione nell'esempio riportato sopra non funziona la valorizzazione della DropDown quando viene letto il valore esistente dal database (modalità di edit).
Questo perché la DropDown non si basa sul campo chiave della tabella (TeachingDetailId), ma solo con il valore visualizzato (Name)
Campo visualizzato
Campo visualizzato
quindi la proprietà Default va impostata con un espressione di questo tipo usando la funzione LookUp

Power Apps

Default = LookUp(TeachingDetails, TeachingDetailId = ThisItem.TeachingDetailId).Name
Attenzione, se si hanno delle voci duplicate identiche non funziona, vanno rese univoche lo voci visualizzate .
In alcuni caso ho dovuto impostare la proprietà Default direttamente sulla DropDown anziché sulla DataCard

Aggiornamento 2 (AllowedValues)

Sembrano esserci problemi quando la chiave della tabella non è di tipo intero ma è, ad esempio, stringa.

In questo caso nella proprietà Items della DropDown non si può usare l'espressione Parent.AllowedValues ma bisogna impostarla direttamente

Power Apps

Items = SortByColumns(TeachingDetails, "Name", Ascending)
la proprietà AllowedValues può essere lasciata blank.
Settaggi finali
Settaggi finali
Tags:
Power Apps26 SharePoint497 SharePoint Online75 SQL90 SQL Server100
Potrebbe interessarti anche: