Applicazione di filtri alle colonne di scelta Dataverse con le formule Power Fx
Se si dispone di una tabella Dataverse con una colonna di scelta, si consiglia di filtrare i dati in base a tale colonna. Di seguito sono riportati gli scenari di filtro più comuni:
Filtrare le righe della tabella per la visualizzazione in una raccolta.
Avere un menu a discesa o una casella combinata con l'elenco dei valori di scelta e consentire all'utente di selezionarne uno o più. Quindi è possibile usare i valori selezionati per filtrare le righe della tabella da visualizzare nella raccolta.
Ad esempio, se nella tabella Account è presente un campo di scelta Category, è possibile usare la seguente logica per filtrare solo i clienti preferiti:
Filter(
Accounts,
Category = 'Category (Accounts)'.'Preferred Customer'
)
Assicurarsi di non usare solo la stringa 'Preferred Customer' (come nell'immagine seguente) perché non è valida. Viene restituito l'errore "Tipi incompatibili per il confronto". Poiché 'Category' è una tabelle (oppure un set di opzioni), non è possibile confrontare il valore della tabella con un valore di testo. Di conseguenza, è necessario usare il riferimento completo: 'Category (Accounts)'.'Preferred Customer'
(visualizzato anche come [@Category].'Preferred Customer')
.
Si consiglia di usare un menu a discesa o una casella combinata in modo che gli utenti possano determinare i valori filtrati per la raccolta. Nell'esempio seguente viene usata una casella combinata per consentire la visualizzazione di selezioni multiple di categorie di account.
Innanzitutto aggiungere una casella combinata alla schermata, quindi impostare la proprietà Items usando la funzione Choices.
La funzione Choices() prepara un elenco di valori che l'utente può selezionare usando i metadati per la colonna di scelta Accounts.Category.
Modificare quindi la formula Items per la raccolta da includere usando la proprietà SelectedItems della casella combinata.
Filter(Accounts, Category in ComboBoxCategory.SelectedItems)
L'uso dell'operatore in consente di usare la formula per applicare il filtro a qualsiasi categoria selezionata.
Questa formula mostra solo le righe nella raccolta quando è selezionata almeno una categoria. Se si desidera visualizzare tutte le righe quando non è selezionata alcuna categoria, è possibile aggiungere la verifica IsEmpty alla formula.
Filter(
Accounts, Category in ComboBoxCategory.SelectedItems
|| IsEmpty(ComboBoxCategory.SelectedItems)
)
Filtro delle colonne di scelte
Il filtro delle righe della tabella in una colonna di scelte è reso complicato dal modo in cui i dati vengono archiviati in Dataverse come elenco separato da virgole. Di conseguenza eventuali filtri composti che coinvolgono una colonna di scelte ricevono un avviso di delega, come illustrato nell'esempio seguente.
Un approccio che è possibile adottare consiste nel creare una vista tabella Dataverse che filtra i valori delle scelte e quindi la usa nei criteri della funzione Filter(). Questo approccio consente di evitare il problema della delega, ma non permette all'utente dell'app di fornire i valori dei criteri di filtro. Il seguente screenshot mostra un esempio di un filtro delle viste Dataverse per la colonna di scelte Preferred Delivery.
È possibile usare questa vista Dataverse denominata Monday Delivery con la seguente funzione Filter():
Filter(
Accounts,
'Accounts (Views)'.'Monday Delivery'
)
Inoltre è possibile continuare a includere i criteri immessi dall'utente per altre colonne oltre alla vista. Ad esempio, la seguente funzione Filter() mostra l'aggiunta della colonna di scelta Category, che viene filtrata in base al valore selezionato dall'utente dall'elenco a discesa.
Filter(
Accounts,
'Accounts (Views)'.'Monday Delivery',
Category = Dropdown1.Selected.Value
)
A causa dell'elenco standardizzato di valori, le colonne di scelta o scelte sono utili per offrire modi coerenti per filtrare le righe della tabella.