
El formato de la salida de los datos
ABAP ofrece una serie de sentencias especialmente diseñadas para generar reportes de manera sencilla. La más pupular de todas estas sentencias es WRITE.
La sentencia WRITE tiene un formato determinado que es el siguiente:
WRITE:/ <offset>(<long>)'<datos visualizar>'.
:/ Salto de línea, antes de que se imprima en pantalla los datos se producirá un salto de línea
<offset> Columna donde empieza la impresión
(<long>) Longitud de la impresión
'<datos visualizar>'. Datos a imprimir
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:/1(18) 'Nombre del alumno:', v_nombre.
WRITE:/1(16) 'Edad del alumno:',v_edad.
WRITE:/1(14) 'Código Postal:', v_codigo_postal.
Existen muchos comandos adicionales a WRITE que se utilizan para reproducir una salida por pantalla determinada:
LEFT-JUSTIFIED → Salida justificada izquierda
CENTERED → Salida centrada
RIGHT-JUSTIFIED → Salida justificada a derecha
NO-ZERO→ Si el campo contine ceros estos serán cambiados por blancos
NO-GAPS → El blanco despues del campo que se desea imprimir es omitido
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 n
DD/MM/YYYY→ Fecha con separadores
Sentencia SKYPE se utiliza para dejar una linea en blanco entre 1 impresiones que realizamos en la pantalla
WRITE:/ 'Esta es la primera línea'.
SKIP.
WRITE:/ 'Esta es la segunda línea'.
Sentencia ULINE se utiliza para imprimir en pantalla una línea horizontal
WRITE:/ 'Esta es la primera línea'.
ULINE.
WRITE:/ 'Esta es la segunda línea'.
Para saltar una pagina utlilizaremos la sentencia NEW-PAGE. Si deseamos saltar varias lineas horizontales utilizaremos la sentencia SKYPE seguida del numero de líneas que indica la cantidad de líneas horizontales a saltar:Por ejemplo SKYPE 5 saltará 5 líneas horizontales.
Programa DEMO_LIST_SKIP: Para comprobar cómo funciona la sentencia SKIP pdemos ejecutar el programa estándar DEMO_LIST_SKIP
Ahora bien existen eventos dentro de un programa ABAP especialmente destinados a darle formato a la salida de un reporte ya sea por pantalla o por impresora.
*El evento TOP-OF-PAGE se utiliza para cambiar la cabecera de una página. Este evento ocurre tan pronto como el sistema empieza a procesar una nueva página. Por ejemplo, si queremos escribir un título particular a comienzo de cada página escribiremos:
*---------------------------------------------------------------------*
TOP-OF-PAGE.
*---------------------------------------------------------------------*
WRITE:/ 'Datos de los alumnos del sistema'.
ULINE.
*---------------------------------------------------------------------*
START-OF-SELECTION.
*---------------------------------------------------------------------*
WRITE:/1(18) 'Nombre del alumno:', v_nombre.
WRITE:/1(16) 'Edad del alumno:', v_edad.
WRITE:/1(14) 'Código Postal:', v_codigo_postal.
*El evento END-OF-SELECTION se utiliza para realizar la impresión por pantalla de los datos, de modo de separar la impresión del procesamiento de los datos. Este evento se ejecuta luego del evento START-OF-SELECTION.
*---------------------------------------------------------------------*
END-OF-SELECTION.
*---------------------------------------------------------------------*
WRITE:/ 'Se mostro 1 registro'.
*Por último podemos modificar la cantidad de líneas y columnas que se visualizan en la pantalla y para ellos vamos utilizar la sentencia NO STANDARD PAGE HEADING a la derecha de la sentencia REPORT:
REPORT ztest_formato NO STANDARD PAGE HEADING LINE-SIZE 200.
LINE-COUNT 60.