Udostępnij za pośrednictwem


FILTER, funkcja ER

Funkcja FILTER zwraca określoną listę jako wartość typu Lista rekordów po zmianie zapytania tak, aby filtrowała ona dane pod kątem określonego warunku.

Składnia

FILTER (list, condition)

Argumenty

list: Lista rekordów

Prawidłowa ścieżka elementu źródła danych o typie danych Lista rekordów.

condition: Wartość logiczna

Prawidłowe wyrażenie warunkowe, które jest używane do filtrowania rekordów z określonej listy.

Wartości zwracane

Lista rekordów

Wynikowa lista rekordów.

Uwagi dotyczące użytkowania

Ta funkcja różni się od funkcji WHERE, ponieważ podany warunek jest stosowany do każdego źródła danych modułu Raportowanie elektroniczne (ER) o typie Rekordy tabeli na poziomie bazy danych. Listę i warunek można zdefiniować przy użyciu tabel i relacji.

Jeśli jeden lub oba argumenty skonfigurowane dla tej funkcji (list i condition) nie zezwalają na przetłumaczenie tego żądania na bezpośrednie wywołanie SQL, w czasie projektowania jest generowany wyjątek. Ten wyjątek informuje użytkownika, że elementu list lub condition nie można użyć do tworzenia zapytania dotyczącego bazy danych.

Banknot

Funkcja FILTER różni się od funkcji WHERE w przypadku korzystania z funkcji VALUEIN do określania kryteriów wyboru.

  • Jeśli funkcja VALUEIN jest używana w zakresie funkcji WHERE, a drugi argument VALUEIN odwołuje się do źródła danych, które nie zwraca rekordów, jest uznawana wartość logiczna Fałsz, która zwraca VALUEIN. W związku z tym wyrażenie WHERE(Vendors, VALUEIN(Vendors.VendGroup, VendGroups, VendGroups.VendGroup)) nie zwróci rekordów dostawcy, jeśli źródło danych VendGroups nie zwróci rekordów grupy dostawców.
  • Jeśli funkcja VALUEIN jest używana w zakresie funkcji FILTER, a drugi argument VALUEIN odwołuje się do źródła danych, które nie zwraca rekordów, wartość logiczna Fałsz, która zwraca VALUEIN, jest ignorowana. W związku z tym wyrażenie FILTER(Vendors, VALUEIN(Vendors.VendGroup, VendGroups, VendGroups.VendGroup)) zwraca wszystkie rekordy źródła danych Dostawcy, nawet jeśli źródło danych VendGroups nie zwróci żadnych rekordów grupy dostawców.

Przykład 1

Jeśli element Vendor został skonfigurowany jako źródło danych ER odwołujące się do tabeli VendTable, wyrażenie FILTER (Vendors, Vendors.VendGroup = "40") zwraca listę wyłącznie dostawców należących do grupy dostawców 40.

Przykład 2

Jeśli element Vendor został skonfigurowany jako źródło danych ER odwołujące się do tabeli VendTable, a element parmVendorBankGroup został skonfigurowany jako źródło danych ER zwracające wartość o typie danych Ciąg, wyrażenie FILTER ( Vendor.'<Relations'.VendBankAccount, Vendor.'<Relations'.VendBankAccount.BankGroupID = parmVendorBankGroup) zwraca listę tylko kont dostawców należących do określonej grupy bankowej.

Przykład 3

Wprowadzasz źródło danych DS typu Pole obliczeniowe, które zawiera wyrażenie SPLIT ("A,B,C", ","). Następnie wprowadzasz inne wyrażenie FILTER( DS, DS.Value = "B"). Podczas próby zapisania tego wyrażenia w projektancie formuł ER, jest zgłaszany następujący wyjątek: „Błąd weryfikacji: wyrażenie listy funkcji FILTER nie pozwala na tworzenie zapytań”.

Dodatkowe zasoby

Lista funkcji