SELECTS: Cómo descodificar un valor de una pila

Cómo:

La función SELECTS descodifica los valores de una pila.


Principio de página

x
Sintaxis: Cómo Descodificar un valor de una pila
target SELECTS (code, result, code, result, ... [ELSE default])

donde:

Destino

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.

code

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.

result

Es el valor asignado cuando la expresión de entrada tiene el código correspondiente.

default

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.



Ejemplo: Cómo descodificar valores con SELECTS

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;


Ejemplo: Cómo descodificar un valor de una pila

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