Cómo: Referencia: |
La función FPRINT convierte cualquier tipo de campo, excepto los de texto, en su equivalente alfanumérico, para su visualización. La representación alfanumérica incluye cualquier opción de visualización especificada en el formato del campo original.
Lenguajes disponibles: informes
FPRINT(in_value, 'usageformat', output)
donde:
Cualquier formato excepto TX
El valor que se va a convertir.
Alfanumérico
Es el formato de uso del valor que se va a convertir, incluidas las opciones de visualización. El formato debe estar entre comillas simples.
Alfanumérico
Es el nombre del campo de salida o su formato entre comillas simples.
El formato de salida debe ser lo suficientemente largo para incluir el número convertido, con un signo y un punto decimal, además de cualquier carácter adicional generado por las opciones de visualización, como comas, un símbolo de divisa o un signo de porcentaje.
Por ejemplo, el formato D12.2 se convierte en A14, puesto que su salida presenta dos dígitos decimales, un punto decimal, posiblemente un signo menos, hasta ocho dígitos de número entero y dos comas. Si el formato de salida no es lo suficientemente largo, se truncan los caracteres sobrantes de la derecha.
La siguiente solicitud, basada en el origen de datos EMPLOYEE, utiliza FPRINT para convertir los campos CURR_SAL, ED_HRS y BANK_ACCT al formato alfanumérico y mostrarlos en la salida del informe. A continuación, la función STRREP reemplaza los espacios en blanco por asteriscos en la representación alfanumérica de CURR_SAL. CURR_SAL está en formato D12.2M, así que la representación alfanumérica aparece en formato A15. El campo ER_HRS está en formato F6.2, así que la representación alfanumérica aparece en formato A6. El campo BANK_ACCT está en formato I9S, así que la representación alfanumérica aparece en formato A9. Las representaciones alfanuméricas de los campos numéricos están justificadas a la derecha. Las opciones /R del comando PRINT hacen que los títulos de las columnas aparezcan justificados a la derecha sobre los valores:
DEFINE FILE EMPLOYEE ASAL/A15 = FPRINT(CURR_SAL, 'D12.2M', ASAL); ASAL/A15 = STRREP(15, ASAL, 1, ' ', 1, '*', 15, ASAL); AED/A6 = FPRINT(ED_HRS, 'F6.2', AED); ABANK/A9 = FPRINT(BANK_ACCT, 'I9S', ABANK); END TABLE FILE EMPLOYEE PRINT CURR_SAL ASAL ED_HRS AED/R BANK_ACCT ABANK/R WHERE BANK_NAME NE ' ' ON TABLE SET PAGE NOPAGE END
La salida es:
CURR_SAL ASAL ED_HRS AED BANK_ACCT ABANK -------- ---- ------ ------ --------- --------- $18,480.00 *****$18,480.00 50.00 50.00 40950036 40950036 $29,700.00 *****$29,700.00 .00 .00 160633 160633 $26,862.00 *****$26,862.00 30.00 30.00 819000702 819000702 $21,780.00 *****$21,780.00 75.00 75.00 122850108 122850108 $16,100.00 *****$16,100.00 50.00 50.00 136500120 136500120 $27,062.00 *****$27,062.00 45.00 45.00 163800144 163800144
La siguiente solicitud, basada en el origen de datos EMPLOYEE, convierte el campo HIRE_DATE al formato alfanumérico. Además, crea un campo de fecha alfanumérico llamado ADATE, y lo convierte en su representación alfanumérica. Puesto que el campo HIRE_DATE está en el formato I6YMD y ADATE, en A6YMD, las representaciones alfanuméricas aparecen en el formato A8 para acomodar las barras diagonales entre los componentes de fecha. La opción /R justifica a la derecha los títulos de las columnas sobre los valores de los campos:
DEFINE FILE EMPLOYEE AHDATE/A8 = FPRINT(HIRE_DATE,'I6YMD', AHDATE); ADATE/A6YMD = EDIT(HIRE_DATE); AADATE/A8 = FPRINT(ADATE,'A6YMD', AADATE); END TABLE FILE EMPLOYEE PRINT HIRE_DATE AHDATE/R ADATE AADATE/R ON TABLE SET PAGE NOPAGE END
La salida es:
HIRE_DATE AHDATE ADATE AADATE --------- -------- ----- -------- 80/06/02 80/06/02 80/06/02 80/06/02 81/07/01 81/07/01 81/07/01 81/07/01 82/05/01 82/05/01 82/05/01 82/05/01 82/01/04 82/01/04 82/01/04 82/01/04 82/08/01 82/08/01 82/08/01 82/08/01 82/01/04 82/01/04 82/01/04 82/01/04 82/07/01 82/07/01 82/07/01 82/07/01 81/07/01 81/07/01 81/07/01 81/07/01 82/04/01 82/04/01 82/04/01 82/04/01 82/02/02 82/02/02 82/02/02 82/02/02 82/04/01 82/04/01 82/04/01 82/04/01 81/11/02 81/11/02 81/11/02 81/11/02
La siguiente solicitud, basada en el origen de datos VIDEOTRK, convierte el campo TRANSDATE (YMD) al formato alfanumérico. La representación alfanumérica está en formato A8 para acomodar las barras diagonales entre los componentes de fecha:
DEFINE FILE VIDEOTRK ALPHA_DATE/A8 = FPRINT(TRANSDATE,'YMD', ALPHA_DATE); END TABLE FILE VIDEOTRK PRINT TRANSDATE ALPHA_DATE WHERE TRANSDATE LE '91/06/20' ON TABLE SET PAGE NOPAGE END
La salida es:
TRANSDATE ALPHA_DATE --------- ---------- 91/06/19 91/06/19 91/06/17 91/06/17 91/06/20 91/06/20 91/06/19 91/06/19 91/06/18 91/06/18 91/06/17 91/06/17 91/06/17 91/06/17 91/06/17 91/06/17 91/06/20 91/06/20 91/06/19 91/06/19 91/06/18 91/06/18 91/06/19 91/06/19 91/06/18 91/06/18 91/06/20 91/06/20 91/06/18 91/06/18 91/06/20 91/06/20 91/06/19 91/06/19 91/06/17 91/06/17
La siguiente solicitud, basada en el origen de datos VIDEOTR2, convierte el campo TRANSDATE (HYYMDI) al formato alfanumérico. La representación alfanumérica está en el formato A16 para acomodar un año de dos dígitos, un mes y un día con dos dígitos cada uno, dos barras diagonales entre los componentes de fecha, un espacio entre la fecha y la hora, una hora de dos dígitos, un punto y coma entre los componentes de hora y minuto y un minuto de dos dígitos:
DEFINE FILE VIDEOTR2 DATE/I4 = HPART(TRANSDATE, 'YEAR', 'I4'); ALPHA_DATE/A16 = FPRINT(TRANSDATE,'HYYMDI', ALPHA_DATE); END TABLE FILE VIDEOTR2 PRINT TRANSDATE ALPHA_DATE/R WHERE DATE EQ '1991' ON TABLE SET PAGE NOPAGE END
La salida es:
TRANSDATE ALPHA_DATE --------- ---------------- 1991/06/27 02:45 1991/06/27 02:45 1991/06/20 05:15 1991/06/20 05:15 1991/06/21 07:11 1991/06/21 07:11 1991/06/21 01:10 1991/06/21 01:10 1991/06/19 07:18 1991/06/19 07:18 1991/06/19 04:11 1991/06/19 04:11 1991/06/25 01:19 1991/06/25 01:19 1991/06/24 04:43 1991/06/24 04:43 1991/06/24 02:08 1991/06/24 02:08 1991/06/25 01:17 1991/06/25 01:17 1991/06/27 01:17 1991/06/27 01:17 1991/11/17 11:28 1991/11/17 11:28 1991/06/24 10:27 1991/06/24 10:27
Si mantiene la salida en un archivo delimitado por comas u otro tipo de archivo de salida alfanumérica, podrá observar que, mientras el campo original sólo propaga la representación numérica del valor, el campo convertido sí propaga, en cambio, las opciones de visualización:
DEFINE FILE VIDEOTR2 DATE/I4 = HPART(TRANSDATE, 'YEAR', 'I4'); ALPHA_DATE/A16 = FPRINT(TRANSDATE,'HYYMDI', ALPHA_DATE); END TABLE FILE VIDEOTR2 PRINT TRANSDATE ALPHA_DATE/R WHERE DATE EQ '1991' ON TABLE HOLD FORMAT COMMA END
Aparece el archivo HOLD. El primer campo representa los datos originales; el segundo contiene los valores convertidos con opciones de visualización:
"19910627024500000","1991/06/27 02:45" "19910620051500000","1991/06/20 05:15" "19910621071100000","1991/06/21 07:11" "19910621011000000","1991/06/21 01:10" "19910619071800000","1991/06/19 07:18" "19910619041100000","1991/06/19 04:11" "19910625011900000","1991/06/25 01:19" "19910624044300000","1991/06/24 04:43" "19910624020800000","1991/06/24 02:08" "19910625011700000","1991/06/25 01:17" "19910627011700000","1991/06/27 01:17" "19911117112800000","1991/11/17 11:28" "19910624102700000","1991/06/24 10:27"
WebFOCUS |