✒️ABAP / Los reportes interactivos Por Juan Pavicich
ABAP Los reportes interactivos

Que es un reporte Interactivo?
Es un tipo de reporte que se muestra un primer listado por pantalla, con cierta información y luego haciendo doble click en una linea determinada del primer estado, se accede a otros datos relativos a es línea así sucesivamente por cuanto niveles tenga el listado.
La diferencia del reporte clásico puede ser ejecutado ONLINE como BATCH, el reporte interactivo solo es ONLINE y requiere la interacción del usuario.
La principal ventaja de los reportes interactivos es que pocas líneas de código se puede crear un reporte con interacción con el usuarios, a diferencia de los programas de diálogo que requieren de mucho más tiempo para hacerlo.
Eventos y variables de un reporte interactivo
Cuando hacemos clic en cualquier posición de la lista principal que se muestra por pantalla se ejecuta el evento AT LINE-SELECTION. Este evento debemos ubicarlo luego del evento START-OF-SELECTION. Ciertas variables del sistema se contemplan con información muy útil.
SY-LSIND: contiene el indice de la lista de detalle.
SY-LISEL: tiene el contenido de la linea seleccionada.
SY-LILLI: contiene la línea seleccionada del la lista.
SY-CUROW: contiene la posición del cursor vertical en la pantalla.
Utilizaremos el evento TOP-OF-PAGE DURING LINE-SELECTION para imprimir por pantalla los textos de las cabeceras de las listas de detalles. Existen programas de pruebas estándar de ABAP que nos pueden servir para la practica.
DEMO_LISTI_INTERACTIVE_1
DEMO_LISTI_INTERACTIVE_2
DEMO_LISTI_INTERACTIVE_3
DEMO_LISTI_INTERACTIVE_4
Mi primer reporte interactivo.
Usamos la tabla de usuarios ZTABLA_USUARIOS con los campos DIRECCION, CODIGO_POSTAL, F_NACIMIENTO, y ESTADO_CIVIL con Dominio. Debido al cambio de la estructura de la tabla y tenemos que adaptarla a a la base de datos utilizando la opción UTILIDAD/ OBJETO BASE DE DATOS /UTILIDAD BASE DATOS/ ACTIVAR y ADAPTAR BASE DE DATOS. Después debemos volver a general la superficie de actualización y finalmente ingresamos los datos de la tabla a través SM30.
Luego creamos el un programa dentro del evento START-OF-SELECTION donde realizamos la selección del DNI, NOMBRE y APELLIDO de los usuarios. Después los imprimimos por pantalla los resultados seleccionados.
CLEAR ti_usuarios.
REFRESH ti_ususarios.
SELECT *
FROM ztabla_usuarios
INTO TABLE ti_usuarios
LOOP AT ti_usuarios Into wa_usuarios
FORMAT COLOR COL_TOTAL INTENSIFIED.
WRITE:/ wa_usuarios-dni,
wa_usuarios-nombre_ape.
ENDLOOP.
Ahora agregamos el evento AT LINE_SELECTION, el código debe estar dentro de este evento y se ejecutará cuando hagamos doble clic en algún lugar de la pantalla, donde se visualiza el primer listado. Utilizamos la variable SY-LISEL para obtener el DNI correspondiente a la línea de la pantalla a cual queremos realizar el clic.
Luego creamos una subrutina GENERAR_REPORTE_NIVEL2 lo cual seleccionará de la ZTABLA_USUARIOS los datos del detalle correspondiente a cada usuario cuyo DNI fue capturado anteriormente y los imprime en pantalla.
AT LINE-SELECTION
v_dni = sy-lisel(10)
PERFORM generar_reporte_nivel2.
Utilizaremos el evento TOP-OF-PAGE DURING LINE-SELECTION para imprimir la pantalla de cabera de cada nivel de listado de detalle.
TOP-OF-PAGE DURING LINE-SELECTION
write: / 'Detalle de los Usuarios', sy-uline.
Finalmente ejecutamos el reporte hacemos clic en la linea correspondiente al DNI y veremos el del detalle del usuario completo.
Para mostrar el nivel de detalle como una ventana de dialogo osbscreen usamos la sentnecia WINDOWS STARTING AT
WINDOWS STARTING AT 1 15 *indica el ancho y alto de la subscreen.
ENDING AT 79 23.
El nivel de donde estamos lo tenemos en la variable SY-LSIND
 
 
 
Sobre el autor
Publicación académica de Juan Carlos Pavicich, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Inicial.
Juan Carlos Pavicich
Profesión: Técnico Informático - Argentina - Legajo: VR91L
✒️Autor de: 116 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Tengo el agrado de dirigirme a ud/s con el objeto de mencionar mi experiencia y conocimientos técnicos necesarios para desarrollar actividades en el rubro de su empresa.
Certificación Académica de Juan Pavicich
























