
Formato de salida de datos
En ABAP existen una serie de instrucciones diseñadas para generar reportes de forma sencilla.
Una de ellas es la sentencia WRITE:
WRITE /<offset>(<long>) '<datos a visualizar>'.
Offset indica la columna donde empezará la impresión y long indica la longitud de los valores a visualizar. Ejemplo:
*Declaración de variables
DATA: v_nombre (10) TYPE c VALUE 'Victor',
v_edad (2) TYPE n VALUE '29',
v_codigo_postal (4) TYPE c VALUE '1405'.
*----------------------------------------------------------------------------------------
START-OF-SELECTION.
*----------------------------------------------------------------------------------------
WRITE:/ 'NOMBRE:', v_nombre, 20 'EDAD;', v_edad.
WRITE:/ 'CODIGO POSTAL:', v_codigo_postal (4).
Y la salida por pantalla es:
NOMBRE: Victor EDAD: 29
CODIGO POSTAL: 1405
La barra invertida en la sentencia WRITE produce un salto de línea en la pantalla, o sea que si escribimos un WRITE usando :/ y luego debajo ejecutamos otro WRITE entonces ambos textos se imprimirán en pantalla en renglones diferentes. Si hacemos lo mismo pero sin usar el :/ entonces ambos textos se imprimirán en pantalla en el mismo renglón.
Existen muchos comandos adicionales a WRITE que se usan para producir una determinada salida por pantalla. Algunos son:
Left-justified salida justificada a izquierda
Centered salida centrada
Right-justified salida justificada a derecha
no-zero si el campo contiene ceros, estos serán cambiados por blancos
no-gap se omite el blanco después del campo que se desea imprimir
no-sign el signo no aparece en la salida
decimals n n define el número de dígitos decimales
round n redondea el campo de salida para los tipos p
dd/mm/yyyy fecha con separadores
Ejemplo de como centrar un texto con el comando CENTERED:
WRITE: /1 (70) 'Hola Mundo' CENTERED.
Para dejar una línea en blanco se usa la sentencia SKIP y para escribir una línea horizontal se usa la sentencia ULINE.
Para saltar una página usaremos la sentencia NEW-PAGE, si deseamos saltar varias líneas horizontales usaremos la sentencia SKIP seguido del número que indica la cantidad de lineas horizontales a saltar, por ejemplo:
SKIP 5 saltará 5 líneas horizontales.
Programa DEMO_LIST_SKIP
Para probar como funciona la sentencia SKIP podemos ejecutar el programa estándar DEMO_LIST_SKIP.
Formatos de página
Existen instrucciones especialmente destinadas a darle formato a la salida de un reporte ya sea por pantalla o por impresora.
El evento TOP-OF-PAGE se usa para cambiar la cabecera de una página. Este evento ocurre en cuanto el sistema empieza a procesar una nueva página. Por ejemplo, para escribir un título particular al comienzo de cada página pondremos:
*------------------------------------------------------------
TOP-OF-PAGE.
*------------------------------------------------------------
WRITE:/ 'Datos de los usuarios del sistema'.
UNLINE.
El evento END-OF-SELECTION se usa para realizar la impresión por pantalla de datos de modo que se separe esto del procesamiento de los mismos. Esto se ejecuta después del evento START-OF-SELECTION.
*--------------------------------------------------
END-OF-SELECTION.
*---------------------------------------------------
WRITE:/ 'Se mostro 1 registro'.
UNLINE.
NO STANDARD PAGE HEADING: Esta sentencia se usa para modificar la cantidad de líneas o columnas que se visualizan en la pantalla y tambien para eliminar la cabecera que traen los reportes por default.
REPORT z_prueba_abap2_5 NO STANDARD PAGE HEADING LINE-SIZE 200 "Cant lineas
LINE-COUNT 50. "Cant filas