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
Questionsschema DB e aggiungendo il campo
TeachingDetailId Aggiunta campo questo viene riconosciuto come un campo di tipo
numerico, senza tener contro della relazione con la tabella
TeachingDetailsTipo 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 valuesModalità DropDown in questo modo il campo verrà visualizzato come un controllo di tipo
DropDownanche 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
AllowedValuesUnlock inserendo i valori corretti in base alla sorgente dati
Valori in particolare
AllowedValues dovrà contenere la formula che ricava i dati da visualizzare dalla tabella
TeachingDetailsAllowedValues = 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
correnteUpdates = DataCardValue33.Selected.TeachingDetailId
Configurazione DropDown
In ultimo va configurata la
DropDown (DataCardValue33) per mostrare nell'elenco il campo desiderato, in questo caso
NameCampo visualizzato Risultato
Il risultato è questo
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 quindi la proprietà
Default va impostata con un espressione di questo tipo usando la funzione
LookUpDefault = 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
Items = SortByColumns(TeachingDetails, "Name", Ascending)
la proprietà
AllowedValues può essere lasciata blank.
Settaggi finali