Modificateurs d'ensemble utilisant des fonctions d'ensemble
Parfois, vous devez définir un ensemble de valeurs de champ à l'aide d'une définition d'ensemble imbriquée. Par exemple, vous pouvez souhaiter sélectionner tous les clients qui ont acheté un produit spécifique sans sélectionner le produit.
Dans de tels cas, utilisez les fonctions d'ensemble d'éléments P() et E(). Elles renvoient les ensembles d'éléments de valeurs possibles et les valeurs exclues d'un champ, respectivement. À l'intérieur des parenthèses, vous pouvez spécifier le champ en question et une expression d'ensemble qui définit l'étendue. Par exemple :
P({1<Year = {2021}>} Customer)
Cela renverra l'ensemble des clients qui ont effectué des translations en 2021. Vous pouvez alors utiliser ce résultat dans un modificateur d'ensemble. Par exemple :
Sum({<Customer = P({1<Year = {2021}>} Customer)>} Amount)
Cette expression d'ensemble sélectionnera ces clients, mais ne limitera pas la sélection à 2021.
Il est impossible d'employer ces fonctions dans d'autres expressions.
De plus, seuls les ensembles naturels peuvent être utilisés à l'intérieur des fonctions d'ensemble d'éléments. Un ensemble naturel est un ensemble d'enregistrements qu'il est possible de définir par une sélection simple.
Par exemple, l'ensemble fourni par {1-$} ne peut pas toujours être défini par le biais d'une sélection et, de ce fait, il ne s'agit pas d'un ensemble naturel. L'application de ces fonctions à des ensembles non naturels renverra des résultats inattendus.
Exemples : Expressions de graphique pour modificateurs d'ensemble avec des fonctions d'ensemble
Exemples | Résultats |
---|---|
sum( {$<Customer = P({1<Product={'Shoe'}>} Customer)>} Sales ) |
Renvoie les ventes pour la sélection active, mais seuls les clients ayant un jour acheté le produit « Shoe » sont retenus. La fonction d'élément P( ) renvoie alors une liste de clients possibles, ceux qui sont concernés par la sélection « Shoe » dans le champ Product. |
sum( {$<Customer = P({1<Product={'Shoe'}>})>} Sales ) |
Comme précédemment. Si le champ est omis dans la fonction d'élément, la fonction renvoie les valeurs possibles pour le champ spécifié dans l'affectation extérieure. |
sum( {$<Customer = P({1<Product={'Shoe'}>} Supplier)>} Sales ) |
Renvoie les ventes pour la sélection active, mais seulement les clients ayant un jour fourni le produit 'Shoe', à savoir, les clients également fournisseurs. La fonction d'élément P( ) renvoie alors une liste de fournisseurs possibles, ceux qui sont concernés par la sélection « Shoe » dans le champ Product. La liste des fournisseurs est alors utilisée comme sélection dans le champ Customer. |
sum( {$<Customer = E({1<Product={'Shoe'}>})>} Sales ) |
Renvoie les ventes pour la sélection active, mais seuls les clients n'ayant jamais acheté le produit « Shoe » sont retenus. La fonction d'élément E( ) renvoie alors la liste des clients exclus, ceux qui ne font pas partie de la sélection « Shoe » dans le champ Product. |