Dataverse-Auswahlspalten mit Power Fx-Formeln filtern

Abgeschlossen

Wenn Sie über eine Dataverse-Tabelle mit den Auswahlspalten verwenden, möchten Sie die Daten häufig mit einer Auswahlspalte filtern. Die häufigsten Filterszenarios sind folgende:

  • Filtern Sie die Tabellenzeilen für die Anzeige in einem Katalog.

  • Verwenden Sie ein Dropdownmenü oder ein Kombinationsfeld-Steuerelement mit der Liste der Auswahlwerte, und lassen Sie den Benutzer dann einen oder mehrere auswählen. Anschließend können Sie die ausgewählten Werte verwenden, um die Tabellenzeilen zu filtern, die Sie im Katalog anzeigen.

Wenn Sie zum Beispiel über ein Auswahlfeld Kategorie in der Kontentabelle verfügen, können Sie die folgende Logik verwenden, um nur nach bevorzugten Kunden zu filtern:

Filter(
  Accounts,
  Category = 'Category (Accounts)'.'Preferred Customer'
)

Stellen Sie sicher, dass Sie nicht nur die Zeichenfolge „Bevorzugter Kunde“ (wie im Bild unten) verwenden, da es sich um einen ungültigen Vergleich handelt. Es wird Ihnen der Fehler „Inkompatible Typen für Vergleich“ angezeigt. Sie können den Tabellenwert nicht mit einem Textwert vergleichen, da die „Kategorie“ selbst eine Tabelle (oder ein Optionssatz) ist. Daher müssen Sie den vollqualifizierten Verweis verwenden: 'Category (Accounts)'.'Preferred Customer' (auch angezeigt als [@Category].'Preferred Customer').

Screenshot der ungültigen Power Fx-Formel: Filter ( Accounts, Category =

Häufig möchten Sie ein Dropdownmenü oder ein Kombinationsfeld verwenden, damit Benutzer die gefilterten Werte für den Katalog bestimmen können. Im folgenden Beispiel wird ein Kombinationsfeld zum Anzeigen der Mehrfachauswahl von Kontokategorien verwendet.

Screenshot eines teilweisen Kontoinformationsformulars mit einer Dropdownliste mit mehreren ausgewählten Kategorien: Standard‑ und bevorzugter Kunde

Zuerst fügen Sie dem Bildschirm ein Kombinationsfeld hinzu, und dann richten Sie die Eigenschaft Items mit der Auswahlfunktion ein.

Screenshot des folgenden Ausdrucks als Formel für die Eigenschaft „Items“: Choices(Accounts.Category)

Die Choices()-Funktion bereitet eine Liste von Werten vor, aus denen Ihr Benutzer mithilfe der Verwendung von Metadaten für die Auswahlspalte Accounts.Category auswählen können.

Als Nächstes ändern Sie die Formel Items im Katalog, um sie mithilfe der Kombinationsfeld-Eigenschaft SelectedItems einzuschließen.

Filter(Accounts, Category in ComboBoxCategory.SelectedItems)

Das Verwenden der in-Operator ermöglicht der Formel das Filtern nach einer der ausgewählten Kategorien.

Diese Formel zeigt nur Zeilen im Katalog an, wenn mindestens eine Kategorie ausgewählt ist. Wenn Sie alle Zeilen anzeigen möchten, wenn keine Kategorien ausgewählt sind, können Sie IsEmpty hinzufügen, um die Formel zu überprüfen.

Filter(
  Accounts, Category in ComboBoxCategory.SelectedItems
  || IsEmpty(ComboBoxCategory.SelectedItems)
)

Auswahlmöglichkeiten-Spalten filtern

Das Filtern von Tabellenzeilen in einer Auswahlmöglichkeiten-Spalte wird dadurch erschwert, wie die Daten in Dataverse als kommagetrennte Liste gespeichert werden. Als Ergebnis erhält jeder von Ihnen erstellte Filter, der eine Auswahlmöglichkeiten-Spalte enthält, eine Delegierungs-Warnung, wie im folgenden Beispiel gezeigt.

Screenshot der Formel Filter(Accounts,Text(Dropdown1.Selected.Value in 'Preferred Delivery')

Ein Ansatz, den Sie auswählen könnten, ist die Erstellung einer Dataverse-Tabellenansicht, die die Werte der Auswahlmöglichkeiten filtert und dann in Ihren Filter()-Funktionskriterien verwendet. Dieser Ansatz würde Ihnen helfen, die Delegierungsherausforderung zu vermeiden, aber der App-Benutzer die Filterkriterienwerte nicht bereitstellen kann. Der folgende Screenshot zeigt ein Beispiel für einen Dataverse-Ansichtsfilter für die Auswahlmöglichkeiten-Spalte Bevorzugte Lieferung.

Screenshot der Dataverse-Ansicht „Filterkriterien bearbeiten“, die das Filtern in der Auswahlmöglichkeiten-Spalte „Bevorzugte Lieferung“ zeigt

Sie können diese Dataverse-Ansicht mit dem Namen Lieferung am Montag nutzen, indem Sie die folgende Filter()-Funktion verwenden:

Filter(
  Accounts,
  'Accounts (Views)'.'Monday Delivery'
)

Zudem können Sie weiterhin vom Benutzer eingegebene Kriterien für andere Spalten als die Ansicht einschließen. Die folgende Filter()-Funktion zeigt zum Beispiel das Hinzufügen der Auswahlspalte Kategorie, die nach dem Wert gefiltert wird, den der Benutzer aus der Dropdownliste ausgewählt hat.

Filter(
  Accounts,
  'Accounts (Views)'.'Monday Delivery',
  Category = Dropdown1.Selected.Value
)

Aufgrund ihrer standardisierten Werteliste sind Auswahl‑ und Auswahlmöglichkeiten-Spalten hilfreich, um konsistente Möglichkeiten zum Filtern von Tabellenzeilen bereitzustellen.