Modificateurs d'ensemble

Il est possible de modifier un ensemble à l'aide d'une sélection supplémentaire ou modifiée. Une telle modification peut être écrite dans l'expression d'ensemble.

Le modificateur se compose d'un ou de plusieurs noms de champ, chacun suivi d'une sélection devant être effectuée dans le champ et placée entre les signes < et >. Par exemple : <Year={2007,+2008},Region={US}>. Les noms et les valeurs des champs peuvent être placés entre guillemets comme à l'accoutumée, par ex. <[Sales Region]={’West coast’, ’South America’}>.

Un modificateur d'ensemble permet de modifier la sélection de l'identificateur d'ensemble précédent. Si aucun identificateur d'ensemble n'est référencé, l'état de sélection actif est implicite.

Il existe plusieurs façons de définir la sélection, comme décrit ci-dessous.

Sélection basée sur un autre champ

Le cas le plus simple est celui d'une sélection basée sur les valeurs sélectionnées d'un autre champ, par exemple <OrderDate = DeliveryDate>. Ce modificateur récupère les valeurs sélectionnées à partir de DeliveryDate pour les appliquer en tant que sélection à OrderDate. Si vous disposez de nombreuses valeurs distinctes (plus de deux cents), cette opération est déconseillée, car elle mobilise considérablement les ressources du processeur.

Sélection basée sur des ensembles d'éléments

L'exemple d'expression d'ensemble le plus courant est celui basé sur une liste de valeurs de champ entre accolades. Les valeurs sont séparées par des virgules, comme dans l'exemple suivant : <Year = {2007, 2008}>. Les accolades définissent un ensemble d'éléments, ceux-ci pouvant correspondre à des valeurs de champ explicites ou à des recherches de valeurs de champ.

À moins que les valeurs énumérées contiennent des espaces ou des caractères spéciaux, les guillemets ne sont pas nécessaires. Les valeurs énumérées sont simplement mises en correspondance avec les valeurs de champ. Cette comparaison n'est pas sensible à la casse des caractères.

Si les valeurs énumérées contiennent des espaces ou des caractères spéciaux, ou si vous souhaitez utiliser des caractères génériques, vous devez mettre les valeurs entre guillemets. Il convient d'utiliser des guillemets simples si les valeurs énumérées sont des valeurs de champ explicites. Une correspondance sensible à la casse des caractères sera ensuite effectuée entre les valeurs énumérées et les différentes valeurs de champ.

Des guillemets doubles doivent être utilisés pour les recherches, par exemple, des chaînes qui contiennent des caractères génériques ou qui commencent par un opérateur relationnel ou par un signe égal. Par exemple, <Ingredient = {"*Garlic*"}> entraînera la sélection de tous les ingrédients contenant la chaîne Garlic. Les guillemets doubles peuvent être remplacés par des crochets, par exemple : <Ingredient = {[*Garlic*]}>. Les guillemets doubles peuvent également être remplacés par des accents graves, par exemple : <Ingredient = {`*Garlic*`}>. Les recherches ne sont pas sensibles à la casse des caractères.

Remarque:

Dans les précédentes versions de QlikView, il n'y avait pas de distinction entre les guillemets simples et doubles, et toutes les chaînes placées entre guillemets étaient traitées comme des recherches. Afin de garantir la compatibilité descendante, les documents créés dans d'anciennes versions de QlikView continueront à fonctionner de la même manière qu'auparavant. Les documents créés dans QlikView November 2017 ou version ultérieure respecteront la différence entre les deux types de guillemets.

Exclusion forcée

Enfin, pour les champs en mode And, il existe également l'option d'exclusion forcée. Si vous souhaitez forcer l'exclusion de valeurs de champ spécifiques, placez un tilde ~ devant le nom du champ.

Examples and results:  

Exemples Résultats
sum( {1<Region= {USA} >} Sales ) Renvoie les ventes pour la région USA sans tenir compte de la sélection active.
sum( {$<Region = >} Sales ) Renvoie les ventes pour la sélection active en ayant supprimé la sélection effectuée dans Region.
sum( {<Region = >} Sales )

Renvoie les mêmes résultats que l'exemple ci-dessus. Lorsque l'ensemble à modifier est omis, la fonction utilise $.

Remarque: La syntaxe des deux exemples précédents est interprétée comme aucune sélection dans Region, ce qui signifie que toutes les régions sont possibles en fonction des autres sélections. Elle n'est pas équivalente à la syntaxe <Region = {}> (ou tout autre texte situé à droite du signe égal produisant implicitement un ensemble d'éléments vide) qui est interprétée comme aucune région.
sum( {$<Year = {2000}, Region = {US, SE, DE, UK, FR}>} Sales ) Renvoie les ventes pour la sélection active mais en utilisant de nouvelles sélections dans les champs Year et Region.
sum( {$<~Ingredient = {“*garlic*”}>} Sales )

Le champ Ingredient est défini en mode AND.

Renvoie les ventes pour la sélection active mais en utilisant une exclusion forcée de tous les ingrédients contenant la chaîne garlic.

sum( {$<Year = {“2*”}>} Sales ) Renvoie les ventes pour la sélection active, mais avec toutes les années commençant par le chiffre 2, c'est-à-dire très vraisemblablement les années 2000 et suivantes, sélectionnées dans le champ Year.
sum( {$<Year = {“2*”,”198*”}>} Sales ) Comme précédemment, à ceci près que les années 1980 sont désormais incluses dans la sélection.
sum( {$<Year = {“>1978<2004”}>} Sales ) Renvoie les ventes pour les sélections actives, mais en utilisant une recherche numérique permettant de définir la plage d'années pour laquelle additionner les ventes.