Como: |
A função SELECTS decodifica um valor de uma pilha.
target SELECTS (code, result, code, result, ... [ELSE default])
onde:
É uma expressão válida. Pode ser um nome de campo ou uma variável que se converte em uma célula de pilhas única.
É o valor pelo qual o SELECTS pesquisa. Assim que o valor for encontrado, a expressão de entrada será atribuída o resultado correspondente. A vírgula entre o código e o resultado é opcional.
É o valor atribuído quando a expressão de entrada possuir o código correspondente.
É o valor a ser atribuído se o código não for encontrado entre a lista de códigos. Se o padrão for omitido, um espaço ou um zero será atribuído aos códigos sem correspondentes.
A seguir você encontra valores que calculam um campo definido pelo usuário com base nos valores em uma pilha:
COMPUTE Square = Stk(Cnt).Number SELECTS (1 1, 2 4, 3 9);
Como SELECTS é um operador binário, ele também pode ser utilizado em uma expressão:
COMPUTE Square_Plus = Stk(Cnt).Number SELECTS (1 1, 2 4, 3 9) +1;
O exemplo a seguir utiliza MASK para extrair o primeiro caractere do campo CURR_JOBCODE no arquivo EMPLOYEE. Em seguida, SELECTS cria um valor para o 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
A tabela a seguir exibe valores de exemplo para CURR_JOBCODE e os valores correspondentes para 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 |