✒️ABAP Los reportes interactivos
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.
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