Modificateurs d'ensemble associés à des définitions de valeurs de champ implicites

La section ci-dessous décrit la manière de définir un ensemble de valeurs de champ à l'aide d'une définition d'ensemble imbriquée.

Dans ce cas, les fonctions d'élément P() et E() doivent être lues, représentant respectivement l'ensemble d'éléments des valeurs possibles et les valeurs exclues d'un champ. Entre les parenthèses, il est possible de définir une expression d'ensemble et un champ, par exemple P({1} Customer). Il est impossible d'employer ces fonctions dans d'autres expressions.

Remarque: Les fonctions d'élément, P() et E(), s'appliquent uniquement aux ensembles naturels. 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 peut entraîner des résultats inattendus.

Examples and results:  

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 seuls les clients ayant un jour fourni le produit ‘Shoe’ sont retenus. 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.