Como: |
Linguagens Disponíveis: Reporting, Maintain
A função CHKPCK valida os dados em um campo descrito como formato compactado (caso disponível na sua plataforma). A função impede que uma exceção de dados ocorra quando uma solicitação lê um campo que se espera conter um número compactado válido, mas não contém.
Para utilizar CHKPCK:
CHKPCK(length, in_value, error, output)
onde:
Numérico
É o comprimento do campo compactado. Ele pode ter entre 1 e 16 bytes.
Alfanumérico
É o nome do campo compactado ou do valor a ser verificado como decimal compactado. O valor deve ser descrito como alfanumérico, não compactado.
Numérico
É o código de erro que a função retorna se um valor não estiver compactado. Escolha um código de erro fora do intervalo de dados. O erro de código é primeiro truncado para um número inteiro, e depois convertido em formato compacto. No entanto, pode aparecer em um relatório com um ponto decimal dependendo do formato de saída.
Decimal em pacote
É o nome do campo que contém o resultado ou o formato do valor de saída posto entre aspas simples.
DEFINE FILE EMPLOYEE PACK_SAL/A8 = IF EMP_ID CONTAINS '123' THEN 'AAA' ELSE PCKOUT(CURR_SAL, 8, 'A8'); END
TABLE FILE EMPLOYEE PRINT DEPARTMENT PACK_SAL BY EMP_ID ON TABLE SAVE AS TESTPACK END
A saída é:
NUMBER OF RECORDS IN TABLE= 12 LINES= 12 ALPHANUMERIC RECORD NAMED TESTPACK FIELDNAME ALIAS FORMAT LENGTH EMP_ID EID A9 9 DEPARTMENT DPT A10 10 PACK_SAL A8 8 TOTAL 27
FILE = TESTPACK, SUFFIX = FIX FIELD = EMP_ID ,ALIAS = EID,USAGE = A9 ,ACTUAL = A9 ,$ FIELD = DEPARTMENT,ALIAS = DPT,USAGE = A10,ACTUAL = A10,$ FIELD = PACK_SAL ,ALIAS = PS ,USAGE = A8 ,ACTUAL = A8 ,$
DEFINE FILE TESTPACK GOOD_PACK/P8CM = CHKPCK(8, PACK_SAL, -999, GOOD_PACK); END
TABLE FILE TESTPACK PRINT DEPARTMENT GOOD_PACK BY EMP_ID END
A saída é:
EMP_ID DEPARTMENT GOOD_PACK ------ ---------- --------- 071382660 PRODUCTION $11,000 112847612 MIS $13,200 117593129 MIS $18,480 119265415 PRODUCTION $9,500 119329144 PRODUCTION $29,700 123764317 PRODUCTION -$999 126724188 PRODUCTION $21,120 219984371 MIS $18,480 326179357 MIS $21,780 451123478 PRODUCTION -$999 543729165 MIS $9,000 818692173 MIS $27,062
Information Builders |