Freigeben über


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 Funktion WHERE verwendet wird und das zweite Argument von VALUEIN auf eine Datenquelle verweist, die keine Datensätze liefert, wird der boolesche Wert Falsch berücksichtigt, den VALUEIN zurückgibt. Daher gibt der Ausdruck WHERE(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 Funktion FILTER verwendet wird und das zweite Argument von VALUEIN auf eine Datenquelle verweist, die keine Datensätze zurückgibt, wird der boolesche Wert Falsch, den VALUEIN zurückgibt, ignoriert. Daher gibt der Ausdruck FILTER(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

Listenfunktionen