✒️ABAP Los reportes interactivos
ABAP Los reportes interactivos
Reporte interactivo: Es un tipo de reporte ABAP, donde se muestra un primer listado por pantalla, con cierta información y luego haciendo doble clic a una línea determinada del primer listado, se accede a otros datos relativos a esa línea y así sucesivamente por cuantos niveles tenga el reporte.
A diferencia del reporte clásico, que puede ser ejecutado tanto online como batch, el reporte interactivo es ejecutado solo en forma online, ya que requiere de la interacción con el usuario.
La principal ventaja de los reportes interactivos es que con pocas líneas de código se puede crear un reporte con interacción con el usuario, a diferencia de los programas de diálogo, que requieren de mucho más tiempo de construcción.
Los reportes interactivos presentan las siguientes características:
Se recuperan datos y se los presenta en la pantalla en un listado principal.
Se seleccionan líneas del listado principal, se ingresan comandos desde los menús, se ejecutan teclas de función o botones o también se puede introducir información.
Se muestra información detallada presentada en listados secundarios. Para navegar entre los distintos listados o niveles del reporte interactivo vamos a utilizar los botones de navegación BACK y EXIT .
Desde un listado tenemos la posibilidad de llamar a otras transacciones u otros reportes.
Veamos un ejemplo para el cual nos convendría crear un reporte interactivo:
Supongamos que tenemos un primer listado que muestra los usuarios con sus nombres y luego cuando hacemos doble clic sobre un usuario en particular, vemos datos detallados del usuario, como pueden ser el país, el código postal, la región, etc. En este caso, bastaría con crear un reporte interactivo para cumplir con este requerimiento.
2 | Los eventos y variables de un Reporte interactivo
Cuando hacemos doble clic en alguna posición del listado principal que se muestra por pantalla, se ejecutará el evento AT LINE-SELECTION.
En ese momento, ciertas variables del sistema se completan con información muy útil, ellas son:
SY-LSIND: esta variable contiene el índice del listado, es decir el nivel del listado. Por ejemplo si hacemos doble clic en cualquier lugar del listado principal entonces SY-LSIND será 1, si hacemos doble clic en el segundo listado entonces SY-LSIND será 2 y así consecutivamente.
SY-LISEL: esta variable almacena el contenido de la línea seleccionada.
SY-LILLI: esta variable contiene el número de línea seleccionada del listado.
SY-CUROW: esta variable contiene la posición del cursor vertical en la pantalla.
Para imprimir por pantalla los textos de las cabeceras del listado principal vamos a utilizar el evento TOP-OF-PAGE mientras que para imprimir por pantalla los textos de las cabeceras de los listados de detalle vamos a utilizar el evento TOP-OF-PAGE DURING LINE-SELECTION.
Programas para tener en cuenta: Existen algunos programas estándar de prueba que nos pueden servir para practicar, ellos son:
- DEMO_LIST_INTERACTIVE_1
- DEMO_LIST_INTERACTIVE_2
- DEMO_LIST_INTERACTIVE_3
- DEMO_LIST_INTERACTIVE_4
Para aprender a trabajar con reportes interactivos vamos a crear el programa ZREPORTE_INT_USUARIOS.
Dentro del evento START-OF-SELECTION creamos las subrutinas SELECCIONAR_DATOS e IMPRIMIR_DATOS.
Dentro de la subrutina SELECCIONAR_DATOS vamos a seleccionar de la tabla base de datos de usuarios ZTABLA_USUARIOS los campos DNI y Nombre y Apellido.
Y dentro de la subrutina IMPRIMIR_DATOS imprimimos por pantalla el resultado de la selección realizada.
Ahora vamos a agregar el evento AT LINE-SELECTION. El código que se encuentra dentro de este evento se ejecutará cuando hagamos doble clic en algún lugar de la pantalla donde se visualiza el primer listado.
Utilizaremos la variable del sistema SY-LISEL para obtener el DNI correspondiente a la línea de la pantalla a la cual le realizamos doble clic y luego crearemos la subrutina GENERAR_REPORTE_NIVEL2.
Dentro de la subrutina GENERAR_REPORTE_NIVEL2 se seleccionarán los datos de detalle correspondientes al usuario, cuyo DNI fue capturado anteriormente y se los imprimirá por pantalla.
Luego utilizaremos el evento TOP-OF-PAGE DURING LINE-SELECTION para imprimir por pantalla la cabecera de cada nivel de listados de detalle.
Finalmente ejecutamos el reporte y hacemos doble clic en la línea correspondiente al DNI 15487988.
Otra posibilidad con la que contamos consiste en mostrar la pantalla del nivel de detalle como una ventana de dialogo o subscreen. Para esto utilizamos la sentencia WINDOWS STARTING AT.
Se pueden crear hasta 20 niveles de listados secundarios.
 
 
 
Sobre el autor
Publicación académica de Pedro Antonio Duarte, en su ámbito de estudios para la Carrera Consultor ABAP.
Pedro Antonio Duarte
Profesión: Consultor de Sap Abap - Argentina - Legajo: JP24O
✒️Autor de: 128 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Certificación Académica de Pedro Duarte