FILTER EB-Funktion
Die Funktion FILTER
gibt die angegebene Liste als Wert Datensatzliste zurück, nachdem die Abfrage so geändert wurde, dass sie nach der angegebenen Bedingung filtert.
Syntax
FILTER (list, condition)
Argumente
list
: Datensatzliste
Der gültige Pfad einer Datenquelle des Datentyps Datensatzliste.
condition
: Boolesch
Ein gültiger Bedingungsausdruck, mit dem Datensätze der angegebenen Liste gefiltert werden.
Rückgabewerte
Datensatzliste
Die resultierende Liste der Datensätze.
Anwendungshinweise
Diese Funktion unterscheidet sich von der Funktion WO, da die angegebene Bedingung auf jede beliebige Datenquelle der elektronischen Berichtserstellung (EB) des Typs Tabellendatensätze auf Datenbankebene angewendet wird. Die Liste und die Bedingung können definiert werden, indem Tabellen und Relationen verwendet werden.
Wenn eines oder beide Argumente, die für diese Funktion konfiguriert sind (list
und condition
), nicht die Übersetzung dieser Anforderung für den direkten SQL-Aufruf zulassen, wird zur Entwurfszeit eine Ausnahme ausgelöst. Diese Ausnahme informiert den Benutzer darüber, dass entweder list
oder condition
nicht zum Abfragen der Datenbank verwendet werden kann.
Notiz
Die Funktion FILTER
verhält sich anders als die Funktion WHERE
, wenn die Funktion VALUEIN
zur Angabe der Auswahlkriterien verwendet wird.
- Wenn die Funktion
VALUEIN
im Rahmen der FunktionWHERE
verwendet wird und das zweite Argument vonVALUEIN
auf eine Datenquelle verweist, die keine Datensätze liefert, wird der boolesche Wert Falsch berücksichtigt, denVALUEIN
zurückgibt. Daher gibt der AusdruckWHERE(Vendors, VALUEIN(Vendors.VendGroup, VendGroups, VendGroups.VendGroup))
keine Datensätze von Lieferanten zurück, wenn die Datenquelle VendGroups keine Datensätze von Lieferantengruppen zurückgibt. - Wenn die Funktion
VALUEIN
im Rahmen der FunktionFILTER
verwendet wird und das zweite Argument vonVALUEIN
auf eine Datenquelle verweist, die keine Datensätze zurückgibt, wird der boolesche Wert Falsch, denVALUEIN
zurückgibt, ignoriert. Daher gibt der AusdruckFILTER(Vendors, VALUEIN(Vendors.VendGroup, VendGroups, VendGroups.VendGroup))
alle Datensätze der Datenquelle Vendors zurück, auch wenn die Datenquelle VendGroups keine Datensätze der Vendor Groups zurückgibt.
Beispiel 1
Wenn Kreditor als EB-Datenquelle konfiguriert wurde, die sich auf die Tabelle „VendTable“ bezieht, gibt der Ausdruck FILTER (Vendors, Vendors.VendGroup = "40")
eine Liste von ausschließlich den Kreditoren zurück, die zur Kreditorengruppe 40 gehören.
Beispiel 2
Wenn Kreditor als EB-Datenquelle konfiguriert ist, die auf die Tabelle „VendTable“ verweist, und wenn parmVendorBankGroup als EB-Datenquelle konfiguriert ist, die einen Wert des Datentyps String zurückgibt, gibt der Ausdruck FILTER ( Vendor.'<Relations'.VendBankAccount, Vendor.'<Relations'.VendBankAccount.BankGroupID = parmVendorBankGroup)
eine Liste nur der Kreditorenkonten zurück, die zu einer bestimmten Bankengruppe gehören.
Beispiel 3
Sie geben die Datenquelle DS des Typs Berechnetes Feld ein, und sie enthält den Ausdruck SPLIT ("A,B,C", ",")
. Sie geben dann einen anderen Ausdruck ein, FILTER( DS, DS.Value = "B")
. Wenn Sie versuchen, diesen Ausdruck im EB-Formel-Designer zu speichern, wird die folgende Ausnahme ausgelöst: „Validierungsfehler: Der Listenausdruck der FILTER-Funktion kann nicht abgefragt werden.“
Zusätzliche Ressourcen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für