Come: |
La funzione SELECTS decodifica un valore da uno stack.
target SELECTS (code, result, code, result, ... [ELSE default])
dove:
Una espressione valida. È in grado di essere o un nome campo o una variabile che risulta in una cella stack singola.
Il valore per cui SELECTS esegue la ricerca. Dopo aver trovato il valore, si assegna l'espressione input al risultato corrispondente. La virgola tra il codice ed il risultato è opzionale.
Il valore assegnato quando l'espressione inpunt ha il codice corrispondente.
Il valore da assegnare se non si trova il codice tra l'elenco dei codici. Se si omette il valore predefinito, si assegna uno spazio o lo zero ai codici non corrispondenti.
Il seguente calcola un campo definito dall'utente a seconda dei valori in uno stack:
COMPUTE Square = Stk(Cnt).Number SELECTS (1 1, 2 4, 3 9);
Poiché SELECTS è un operatore binario, è possibile usarlo solo in una espressione:
COMPUTE Square_Plus = Stk(Cnt).Number SELECTS (1 1, 2 4, 3 9) +1;
Il seguente esempio usa MASK per estrarre il primo carattere del campo CURR_JOBCODE nel file EMPLOYEE. Quindi SELECTS crea un valore per il 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 seguente tabella mostra valori campione per CURR_JOBCODE e i valori corrispondenti per 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 |