✒️ABAP Los reportes interactivos
ABAP Los reportes interactivos
Reportes Interactivos
1) Tipo de reporte de ABAP donde se muestra un listado por pantalla con cierta info y luego haciendo doble clic a una línea determinada se accede a los otros datos relativos a dicha línea seleccionada. Así sucesivamente hasta la cantidad de niveles que tenga el listado. Por esta cuestión, se ejecuta solamente de manrea ONLINE.
Diferencia con los programa de reportes clásicos que se ejecutan Online o Batch.
Diferencia con los programas de diálogo, con poco código se crea y no requiere tanto tiempo de construcción.
2) Eventos y variables de un repo interactivo:
Al hacer doble clic del listado principal, se dispara el evento AT LINE-SELECTION que debe estar luego del evento START-OF-SELECTION.
Las variables que se completan por este evento son:
SY-LSIND: índice de la lista del detalle.
SY-LISEL: contenido del registro selecionado.
SY-LILLI: contiene la línea seleccionada de la lista.
SY-CUROW: la pos. del cursor vertical en la pantalla.
Evento TOP-OF-PAGE DURING LINE-SELECTION para mostrar los textos de las cabeceras de las listas de detalle.
3) Mi Primer Reporte Interactivo:
Creación:
Dentro del evento START-OF-SELECTION traer los datos de la BD y mostrar datos mínimos (ej. DNI y Nombre y Ape) por pantalla.
Agregar el evento AT LINE-SELECTION (aquí dentro se ejecutará cuando se hace doble clic en el listado) usar la varibale SY-LISEL para obtener el DNI correspondiente a la línea de la pantalla seleccionada.
Ejemplo:
AT LINE-SELECTION.
v_dni = sy-lisel(10). Se obtiene el DNI de la estructura.
PERFORM generar_repo_nivel2.
Para obtener los otros campos:
v_nombre_ape = sy-lisel 10(30) Obtien el siguiente campo de la tabla que está 30 caracteres hacia la derecha de DNI, más los 10 de DNI.
Crear la subrutina para el nivel 2 que seleccionará de la tabla el dato según "v_dni = sy-lisel(10)"
Con el evento TOP-OF-PAGE DURING LINE-SELECTION mostraremos la cabecera de cada nivel...
WRITE:/ 'Detalle de los Usuarios', sy-uline.
Finalmente se ejecuta el reporte y al hecer doble clic en una línea, aparecerá otra pantalla con la info del siguiente nivel.
Otra manera, usar una subscreen (área de la pantalla que funciona como otra pantalla independiente) con la sentencia WINDOWS STARTING AT
(Determina posición en la pantalla, ancho y alto de la subscreen)
WINDOWS STARTING AT 1 15
ENDING AT 79 23.
Para generar distintos niveles de reportes interactivos se debe utilizar la variable del sistema SY-LSIND dentro del evento AT LINE-SELECTION.
Ej.:
AT LINE-SELECTION.
WHEN '1'.
PERFORM reporte_nivel_1.
WHEN '2'.
PERFORM reporte_nivel_2.
WHEN '3'.
PERFORM reporte_nivel_3.
Y así....
ENDCASE.
 
 
 
Sobre el autor
Publicación académica de Ruben Dario Martucci, en su ámbito de estudios para la Carrera Consultor ABAP.
Ruben Dario Martucci
Profesión: Técnico Informático - Argentina - Legajo: UX76U
✒️Autor de: 58 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Certificación Académica de Ruben Martucci