✒️ABAP Los reportes interactivos
ABAP Los reportes interactivos
Resumen
Unidad 5 leccion 4
Los reportes interactivos
1- Que es un reporte intaractivo?
Es un tipo de reporte abap, donde se muestra un primer listado x pantalla concierta info y luego haciendo doble clic a una linea determinada del primer listado se accede a otros relativos a es linea y asi sucesiva/ x cuantos niveles tenga el reporte.
A diferencia del reporte clásico q puede ser ejecutado tanto en online como en batch, el reporte interactivo es ejecutado solo en forma online, ya q requiere de la interacción con el usuario.
La ppal ventaja de los reportes interactivos es q con pocas lineas de código se puede crear un reporte con interación con el usuario, a diferencia de los prog de diálogo q requieren de mucho + tiempo de contrucción.
Los reportes interactivos presentan la sgntes caracteristicas:
- Se recuperan datos y se los presenta en la pantalla es un listado ppal.
- se seleccionan lineas del listado ppal, se ingresan comandos desde los menus, se ejecuta teclas de funcion o botones o también se puede introducir info.
- Se muestra info detallada presentada en listados secundarios xa navegar entre los distintos listados o niveles de reporte interactivo vamos a tulizar los botones de navegacion BACK y EXIT.
- Desde un listado tenemos la posibilidad de llamar a otras TXs u otros reportes.
veamos un Ej: de reporte interactivo
tenemos un listado con usuarios con sus nombres y luego cuando hacemos doble clic sobre un usuario en particular, vemos datos detallados del usuario.
= como pais = codigo portal = la region (crear un reporte interactivo)....
2- Los eventos y variables de un reporte interactivo
Cuando hacemos doble clic en alguna posicion del listado ppal q se muestra xo pantalla, se ejecutará el evento AT LINE-SELECTION
En ese momento ciertas variables del sist se completan con info muy util, ellos son:
sy-lsind => esta variable contiend el indice del listado, es decir el nivel del listado x ej:
si hacemos doble clic en cualquier lugar del listado ppal entonces sy-lsind será 1, si hacemos doble clic en segundo listado, entonces sy-lsind será 2 y asi sucesiva/
sy-lisel => esta variable almacna el contendio de las lienas seleccionada
sy-lilli => esta variable contiene el # de linea seleccion nada del listado.
sy-curow => esta variable contiene la posicion del cursor veritical en la pantilla.
xa imprimir por pantalla los textos de las cabeceras del listado ppal vamos a utilizar el evento TOP-OF-PAGE mientras q xa imprimir x pantalla los textos de las cabeceras de los listados de detalle vamos a utilizar el evento TOP-OF-PAGE DURING LINE-SELECTION
Programas xa tener en cuenta:
= Demo_list_interactivo1.
= Demo_list_interactivo2.
= Demo_list_interactivo3.
= Demo_list_interactivo4.
3- Mi primier reporte interactivo
xa trabajar reportes interactivos => ZREPORTE-OF-INT-USUARIOS
Dentro del evento START-OF-SELECTION creamos las subrutinas SELECCIONAR_DATOS e IMPRIMIR_DATOS
REPORT zreporte_int_usuarios NO STANDAR PAGE HEADING TABLE OF ztablas_usuarios.
DATA: ti_usuarios NO STANDARD TABLE OF ztabla_usuarios.
wa_usuarios LIKE LINE OF ti_usuarios,
v_dni TYPE z_dni.
START-OF-SELECTION.
PERFORM seleccionamos_datos.
PERFORM imprimir_datos.
dentro de la subrutina de SELECCIONAR_DATOS vamos a seleccionar la tabla DB de usuarios ztabla_usuarios los campos DNI y NOMBRE_APE
FORM seleccionar_datos.
REFRESH ti_usuarios
SELECT *
FROM ztabla_usuarios
INTO TABLE ti_usuarios
ENDFORM.
subrutinas imprimir_datos
FORM imprimir_datos.
LOOP AT ti_usuarios INTO wa_usuarios
FORMAT COLOR CALL_TOTAL INTENSIFIED.
WRITE:/ wa_usuarios-dni,
wa_usuarios-nombre_ape.
ENDLOOP.
ENDFORM.
Ahora vamos agrupar en el evento AT LINE-SELECTION el codigo q se encuentra dentro de este evento se ejecutará cuando hagamos doble clic en algun lugar de la pantalla dende se visualiza el primer listado.
Utilizaremos la variable del sist SY-LISEL xa obtener el DNI correspondiente a la linea de la pantalla a la cual la realizamos el doble clic y luego crearemaos la subrutina GENERAR_REPORTE_NIVEL2.
AT LINE-SELECTION.
CLEAR v_dni.
v_dni = SY-LISEL(10).
PERFORM GENERAR_REPORTE_NIVEL2.
Dentro de la subrutina GENERAR_REPORTE_NIVEL2. se seleccionan los datos de detalle correspondientes al usuario cuyo DNI fue capturado anterior/ y se los imprimira x pantalla.
FORM generar_reprote_nivel2.
READ TABLE ti_usuarios INTO wa_usarios WITH KEY dni = v_dni.
IF sy-subrc EQ 0.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
WRITE:/1(50) sy-uline.
WRITE:/1(1) sy-vline,
2(18) text-004
21(1) sy-vline,
22(28) wa_usuarios-dni
50(1) sy-vline.
WRITE:/1(1) sy-vline,
2(8) text-004
21(1) sy-vline,
22(8) wa_usuarios-nombre_ape,
50(1) sy-vline.
luego utilizamos el evento TOP-OF-PAGE DURING LINE-SELECTION xa imprimir x pantalla la cabecera de c/nivel de listados de detalle
TOP-OF-PAGE DURING LINE-SELECTION
WRITE:/text-011.
WRITE:/ sy-vline
Final/ ejecutamos el reporte y hacemos doble clic en la linea correspondiente al DNI 15487988.
otra posibilidad con la q contamos consiste en mostrar la pantalla del nivel de detalle como una ventana de diálogo o subscreen. xa esta utilizamos la sentencia WINDOWS STARTING AT asi:
FORM generar_reporte_nivel2.
READ TABLE ti_usuarios INTO wa_usuarios WITH KEY dni = v_dni
IF sy-subrc EQ 0.
WINDOWS AT 1 15 ENDING AT 79 23.
FORMAT COLOR_HEADING INTENSIFIED ON.
WRITE:/1(50) sy-uline.
WRITE:/1(1) sy-vline,
2(18) sy-vline,
20(28) wa_usuarios-dni,
50(1) sy-vline
ENDIF.
se pueden crear hasta 20 niveles de listados secundarios.
 
 
 
Sobre el autor
Publicación académica de Gustavo Betancur Guzmán, en su ámbito de estudios para la Carrera Consultor ABAP.
Gustavo Betancur Guzmán
Profesión: Ingeniero de Sistemas - Colombia - Legajo: WS86O
✒️Autor de: 164 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP MM Nivel Avanzado
- Carrera Consultor en SAP MM Nivel Inicial