Cómo: |
La función SELECTS descodifica los valores de una pila.
target SELECTS (code, result, code, result, ... [ELSE default])
donde:
Es una expresión válida. Puede ser el nombre de un campo o una variable que se resuelva en una celda de pila individual.
Es el valor buscado por SELECTS. Una vez encontrado, se asigna el resultado correspondiente a la expresión de entrada. La coma entre el código y el resultado es opcional.
Es el valor asignado cuando la expresión de entrada tiene el código correspondiente.
Es el valor que se asigna cuando no se ha encontrado el código en la lista de códigos. Si está omitido, se asigna un espacio o un cero a los códigos que no coincidan.
En el siguiente ejemplo, se ha calculado un campo definido por el usuario en base a los valores de una pila:
COMPUTE Square = Stk(Cnt).Number SELECTS (1 1, 2 4, 3 9);
Puesto que SELECTS es un operador binario, también puede utilizarse en una expresión:
COMPUTE Square_Plus = Stk(Cnt).Number SELECTS (1 1, 2 4, 3 9) +1;
El siguiente ejemplo usa MASK para extraer el primer carácter del campo CURR_JOBCODE en el archivo EMPLOYEE. Después, SELECTS crea un valor para el campo 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 siguiente tabla muestra los valores de ejemplo de CURR_JOBCODE y los correspondientes a 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
WebFOCUS |