Pregunta 2 – Preparación Examen ABAP

La segunda pregunta a resolver es la siguiente:

Pregunta 2

Traduciendo sería:

Los pies de páginas se codifican en el evento:

A) END-OF-SELECTION
B) END-OF-PAGE
C) TOP-OF-PAGE
D) NEW-PAGE

La respuesta marcada como correcta es la opción B – END-OF-PAGE.

En este caso la respuesta se encuentra en la teoría de Eventos de SAP, es por ello que explicaremos cada uno de las opciones puestas en las alternativas:

  • END-OF-SELECTION: Este evento es activado cuando se termina de ejecutar el evento START-OF-SELECTION. Por lo general se emplea para la salida de impresión en pantalla de toda la información recopilada por el programa.
  • END-OF-PAGE: Este evento se activa si se alcanza el tope máximo de área de página colocado en el Reporte (Para ello en el Reporte se indica el tope máximo de líneas, así como la cantidad de líneas para el pie de página, ello con el comando LINE-COUNT Máximo_lineas(Cantidad_pie)). Una vez alcanzado la cantidad señalada el programa puede realizar una impresión que será considerado como un pie de página. Tener presente que el evento no se activará si no se define el tope máximo o no se le indica la cantidad de líneas a tener en el pie, de igual forma el comando NEW-PAGE no activa este evento.
  • TOP-OF-PAGE: Es un evento que se activa antes de imprimir por primera vez en la página que se encuentre activa. Se emplea para la impresión de cabecera de páginas y títulos. Antes de su uso se debe declarar en el reporte el comando NO STANDARD PAGE HEADING  para no tener conflictos con las cabeceras propias de impresión de SAP.
  • NEW-PAGE: No es un evento, sino es un comando cuyo propósito es obligar al listado que se esté imprimiendo hacer un salto de página.

 

Vamos a ver con un ejemplo el comportamiento de estos eventos

Se tiene el siguiente código donde se hace una lectura de 10 registros de la BKPF y se imprime su contenido:

REPORT ZLI_PRUEBA NO STANDARD PAGE HEADING
                  LINE-COUNT 4(1).

TYPESBEGIN OF TY_BKPF,
  BELNR TYPE BKPFBELNR,
END OF TY_BKPF.

DATAT_BKPF TYPE STANDARD TABLE OF TY_BKPF WITH HEADER LINE.

STARTOFSELECTION.

SELECT  BELNR INTO TABLE T_BKPF UP TO 10 ROWS FROM BKPF.

ENDOFSELECTION.

LOOP AT T_BKPF.
  WRITE:/1 T_BKPFBELNR.
  IF SYTABIX ‘5’.
    NEWPAGE.
  ENDIF.
ENDLOOP.

TOPOFPAGE.

WRITE:/1 ‘Línea para Cabecera’.

ENDOFPAGE.

WRITE:/1 ‘Línea para Pie de Página’.

El resultado del ejercicio es:

Pregunta 2a

Donde se puede apreciar los quiebres realizados para mostrar el reporte. Primero muestra la cabecera luego el detalle y al finalizar antes de hacer el salto de página imprime la línea de pie de página.

Un punto importante es ver que en la línea 5 del detalle, por código se puso que haga un salto de página con el comando NEW-PAGE, y como se puede ver en la salida ni bien imprime la quinta línea de detalle se hace un quiebre y se pasa a la siguiente página. En este caso, al obligar el salto de línea, el evento END-OF-PAGE no es lanzado y por lo tanto no imprime pie de página.

Otro punto importante es ver que la última línea de detalle tampoco llama al evento END-OF-PAGE, el motivo es que no se alcanzó el tope de la página que son 3 líneas, como se puede apreciar solo se han impreso 2, por lo cual el evento queda sin ser ejecutado.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s