Set-modificaties

Een set kan worden gewijzigd door een aanvullende of gewijzigde selectie. Een dergelijke modificatie kan worden geschreven in de set-uitdrukking.

De modificatie bestaat uit een of meer veldnamen, elk gevolgd door een selectie die op het veld wordt toegepast en dit alles omsloten door punthaken: < >. Bijvoorbeeld: <Year={2007,2008},Region={US}>. Veldnamen en veldwaarden kunnen zoals gebruikelijk tussen aanhalingstekens worden geplaatst, bijvoorbeeld <[Sales Region]={’West coast’, ’South America’}>.

Een set-modificatie wijzigt de selectie van de voorafgaande set-id. Als niet naar een set-id wordt verwezen, is de state van de huidige selectie impliciet.

Er zijn verschillende manieren om de selectie te definiëren.

  • Op basis van een ander veld
  • Op basis van elementsets (een lijst met veldwaarden in de modificatie)
  • Gedwongen uitsluiting

Deze methoden worden in de volgende subsecties beschreven.

Op basis van een ander veld

Een eenvoudig geval is een selectie op basis van de geselecteerde waarden van een ander veld, bijvoorbeeld <OrderDate = DeliveryDate>. Deze modificatie neemt de geselecteerde waarden uit DeliveryDate en past deze toe als selectie op OrderDate. Als er veel afzonderlijke waarden zijn – meer dan een paar honderd – vormt deze bewerking een te intensieve belasting van de processor en u dient deze dan te vermijden.

Op basis van elementsets

Het meest voorkomende voorbeeld van een ingestelde uitdrukking is een uitdrukking die is gebaseerd op een lijst van veldwaarden die tussen accolades zijn geplaatst. De waarden worden gescheiden door komma's, bijvoorbeeld <Year = {2007, 2008}>. De accolades definiëren een elementset, waarbij de elementen expliciete veldwaarden of zoekopdrachten van veldwaarden kunnen zijn.

Tenzij de vermelde waarden witruimtes of speciale tekens bevatten, zijn aanhalingstekens niet nodig. De vermelde waarden worden eenvoudig gekoppeld aan de veldwaarden. Deze vergelijking is niet hoofdlettergevoelig.

Als de weergegeven waarden lege of speciale tekens bevatten of als u jokertekens wilt gebruiken, moet u de waarden tussen aanhalingstekens plaatsen. Enkele aanhalingstekens moeten worden gebruikt als de vermelde waarden expliciete veldwaarden zijn. Vervolgens worden hoofdlettergevoelige overeenkomsten tussen de weergegeven waarden en de afzonderlijke veldwaarden gemaakt.

Dubbele aanhalingstekens moeten worden gebruikt voor zoekopdrachten, d.w.z. strings met jokertekens of beginnen met een relationele operator of een gelijkteken. <Ingredient = {"*Garlic*"}> selecteert bijvoorbeeld alle ingrediënten die de string ’Garlic’ bevatten. Dubbele aanhalingstekens kunnen worden vervangen door haakjes, bijvoorbeeld <Ingredient = {[*Garlic*]}>. Dubbele aanhalingstekens kunnen ook worden vervangen door accent grave, bijvoorbeeld <Ingredient = {`*Garlic*`}>. Zoekopdrachten zijn niet hoofdlettergevoelig.

Opmerking:

In vorige versies van Qlik Sense was er geen onderscheid tussen enkele en dubbele aanhalingstekens en alle aanhalingstekens werden als zoekopdrachten behandeld. Om achterwaartse compatibiliteit te behouden, blijven apps die gemaakt zijn met oudere versies van Qlik Sense werken zoals ze in eerdere versies deden. Apps gemaakt met Qlik Sense November 2017 of later maken onderscheid tussen de twee soorten aanhalingstekens.

Gedwongen uitsluiting

En ten slotte is er voor velden in AND-modus de mogelijkheid van gedwongen uitsluiting. Als u de uitsluiting van bepaalde veldwaarden wilt afdwingen, moet u “~” gebruiken voor de veldnaam.

Opmerking: AND-modus wordt alleen ondersteund bij gebruik van de Qlik Engine API.

Examples and results:  

Voorbeelden Resultaten
sum( {1<Region= {USA} >} Sales ) Retourneert de verkopen voor de regio USA, waarbij de huidige selectie buiten beschouwing wordt gelaten
sum( {$<Region = >} Sales ) Retourneert de verkopen voor de huidige selectie, maar met de selectie in 'Region' verwijderd
sum( {<Region = >} Sales )

Retourneert hetzelfde als in het voorbeeld hierboven. Wanneer de te modificeren set wordt weggelaten, wordt $ verondersteld.

Opmerking: De syntaxis in de voorgaande twee voorbeelden wordt geïnterpreteerd als 'Region', dat wil zeggen dat alle regio's met andere selecties mogelijk zijn. Dit is niet hetzelfde als de syntaxis <Region = {}> (of andere tekst aan de rechterkant van het is-gelijkteken die impliciet een lege elementset tot gevolg heeft), want deze wordt geïnterpreteerd als geen regio.
sum( {$<Year = {2000}, Region = {US, SE, DE, UK, FR}>} Sales ) Retourneert de verkopen voor de huidige selectie, maar met nieuwe selecties in zowel 'Year' als 'Region'.
sum( {$<~Ingredient = {“*garlic*”}>} Sales )

Het veld Ingredient bevindt zich in de AND-modus.

Retourneert de verkopen voor de huidige selectie, maar met een gedwongen uitsluiting van alle ingrediënten die de tekenreeks “garlic” bevatten.

sum( {$<Year = {“2*”}>} Sales ) Retourneert de verkopen voor de huidige selectie, maar voor alle jaren die beginnen met het cijfer "2", dat wil zeggen, waarschijnlijk vanaf het jaar 2000, geselecteerd in het veld 'Year'.
sum( {$<Year = {“2*”,”198*”}>} Sales ) Als boven, maar nu zijn ook de jaren tachtig opgenomen in de selectie.
sum( {$<Year = {“>1978<2004”}>} Sales ) Retourneert de verkopen voor de huidige selecties, maar met een numerieke zoekactie die wordt gebruikt om het bereik van jaren te bepalen waarvoor de verkopen moeten worden opgeteld.