SELECTS : Décoder une valeur à partir d'une pile

Comment :

La fonction SELECTS décode une valeur à partir d'une pile.


Haut de page

x
Syntaxe : Décoder une valeur à partir d'une pile
target SELECTS (code, result, code, result, ... [ELSE default])

où :

target

est une expression valide. Il peut s'agir d'un nom de champ ou d'une variable qui se résoud en une cellule unique empilée.

code

est la valeur que SELECTS recherche. Une fois que la valeur est trouvée, l'expression d'entrée est affecté au résultat correspondant. La virgule entre le code et le résultat est facultative.

result

est la valeur attribuée lorsque l'expression d'entrée contient le code correspondant.

default

Valeur à affecter lorsque le code ne figure pas dans la liste des codes. Si la valeur par défaut est omise, un espace ou un zéro est attribué aux codes non correspondants.



Exemple : Décoder des valeurs avec SELECTS

Ce qui suit calcule un champ défini par l'utilisateur sur la base des valeurs dans une pile :

COMPUTE Square = Stk(Cnt).Number SELECTS (1 1, 2 4, 3 9);

Parce SELECTS est un opérateur binaire, il peut également être utilisé dans une expression :

COMPUTE Square_Plus = Stk(Cnt).Number SELECTS (1 1, 2 4, 3 9) +1;


Exemple : Décoder une valeur à partir d'une pile

L'exemple suivant utilise MASK pour extraire le premier caractère du champ CURR_JOBCODE du champ dans le fichier EMPLOYEE. SELECTS crée ensuite une valeur pour le champ JOB_CATEGORY :

MAINTAIN FILE Employee
Case Top
  FOR ALL NEXT EMPINFO.EMP_ID INTO EmpStack;
  COMPUTE
    DEPX_CODE/A1     = MASK(EmpStack().CURR_JOBCODE,'9$$');
    JOB_CATEGORY/A15 = DEPX_CODE SELECTS (A 'ADMINISTRATIVE'
      B 'DATA PROCESSING') ;
EndCase
END

La table suivante montre des exemples de valeurs pour CURR_JOBCODE et les valeurs correspondantes pour JOB_CATEGORY :

CURR_JOBCODE   JOB_CATEGORY
------------   ------------
A01            ADMINISTRATIVE
A07            ADMINISTRATIVE
A15            ADMINISTRATIVE
A17            ADMINISTRATIVE
B02            DATA PROCESSING
B03            DATA PROCESSING
B04            DATA PROCESSING
B14            DATA PROCESSING

Information Builders