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 Accounts-Tabelle 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 die vollständige table.column-Zeichenfolge verwenden und nicht nur die Spaltenzeichenfolge „Preferred Customer“ (wie im Bild unten), da es sich um einen ungültigen Vergleich handelt. Wenn Sie vergessen, die Tabelle der Zeichenfolge hinzuzufügen, wird der Fehler „Inkompatible Typen für Vergleich“ angezeigt. Sie können den Tabellenwert nicht mit einem Textwert vergleichen, da die „Category (Accounts)“ 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').

Häufig möchten Sie ein Dropdownmenü oder ein Kombinationsfeld verwenden, um einen Katalog zu filtern, damit Benutzer die Kategorien der anzuzeigenden Elemente bestimmen können. Im folgenden Beispiel verwenden Sie ein Kombinationsfeld, um Benutzern die Mehrfachauswahl von Kontokategorien zu ermöglichen, die im Katalog angezeigt werden sollen.

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

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.

Ein Ansatz, mit dem Sie das Problem der Delegierung umgehen können, besteht darin, eine Dataverse-Tabellenansicht zu erstellen, die die Auswahlwerte filtert, und diese Ansicht dann in den Kriterien Ihrer Filter()-Funktion zu verwenden. Dieser Ansatz würde Ihnen helfen, die Delegierungswarnung 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.

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 benutzerdefinierte Kriterien für andere Spalten als die Category hinzufügen. 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.