Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De functie FILTER
retourneert de opgegeven lijst als een waarde van het type Recordlijst nadat de query is gewijzigd zodat deze filtert op de opgegeven voorwaarde.
Syntaxis
FILTER (list, condition)
Argumenten
list
: Recordlijst
Het geldige pad van een gegevensbron van het gegevenstype Recordlijst.
condition
: Booleaanse waarde
Een geldige voorwaardelijke expressie die wordt gebruikt om records van de opgegeven lijst te filteren.
Retourwaarden
Recordlijst
De resulterende lijst met records.
Gebruiksaanwijzingen
Deze functie verschilt van de functie WHERE omdat de opgegeven voorwaarde wordt toegepast op een ER-gegevensbron (Elektronische rapportage) van het type Tabelrecords op het databaseniveau. De lijst en de voorwaarde kunnen worden gedefinieerd met behulp van tabellen en relaties.
Als een of beide argumenten die zijn geconfigureerd voor deze functie (list
en condition
) niet toestaan dat deze aanvraag wordt omgezet in de directe SQL-aanroep, wordt een uitzondering gegenereerd tijdens het ontwerpen. Deze uitzondering informeert de gebruiker dat list
of condition
niet kan worden gebruikt om een query op de database uit te voeren.
Notitie
De functie FILTER
zal zich anders gedragen dan de functie WHERE
wanneer de functie VALUEIN
wordt gebruikt om de selectiecriteria op te geven.
- Als de functie
VALUEIN
wordt gebruikt in het bereik van de functieWHERE
en het tweede argument vanVALUEIN
verwijst naar een gegevensbron die geen records retourneert, wordt rekening gehouden met de Booleaanse waarde onwaar dieVALUEIN
retourneert. Daarom retourneert de expressieWHERE(Vendors, VALUEIN(Vendors.VendGroup, VendGroups, VendGroups.VendGroup))
geen leverancierrecords als degegevensbron VendGroups geen records van leveranciersgroepen retourneert. - Als de functie
VALUEIN
wordt gebruikt in het bereik van de functieFILTER
en het tweede argument vanVALUEIN
verwijst naar een gegevensbron die geen records retourneert, wordt de Booleaanse waarde onwaar dieVALUEIN
retourneert, genegeerd. Daarom retourneert de expressieFILTER(Vendors, VALUEIN(Vendors.VendGroup, VendGroups, VendGroups.VendGroup))
alle leverancierrecords van de gegevensbron Vendors, zelfs als de gegevensbron VendGroups geen records van leveranciersgroepen retourneert.
Voorbeeld 1
Als Leverancier als een ER-gegevensbron wordt geconfigureerd die naar de tabel VendTable verwijst, wordt met FILTER (Vendors, Vendors.VendGroup = "40")
de lijst met leveranciers geretourneerd die behoren tot de leveranciersgroep 40.
Voorbeeld 2
Als Leverancier is geconfigureerd als een ER-gegevensbron die verwijst naar de tabel VendTable en als parmVendorBankGroup is geconfigureerd als een ER-gegevensbron die een waarde van het gegevenstype Tekenreeks retourneert, retourneert de expressie FILTER ( Vendor.'<Relations'.VendBankAccount, Vendor.'<Relations'.VendBankAccount.BankGroupID = parmVendorBankGroup)
een lijst met alleen de leveranciersaccounts die behoren tot een specifieke bankgroep.
Voorbeeld 3
U voert gegevensbron DS van het type Berekend veld in en deze bevat de expressie SPLIT ("A,B,C", ",")
. Vervolgens voert u een andere expressie FILTER( DS, DS.Value = "B")
in. Wanneer u deze expressie probeert op te slaan in de ER-formuleontwerper, wordt de volgende uitzondering gegenereerd: "Validatiefout: er kunnen geen query's worden uitgevoerd op de lijstexpressie van de FILTER-functie."