
Lección 4: Reportes interactivos.
1.- Que es un reporte interactivo
Es un tipo de reporte ABAP, donde se muestra un primer listado por pantalla, con cierta información y 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 listado.
Solo se ejecuta en forma Online
2.- Eventos y variables de un reporte interactivo
Cuando hacemos clic en alguna posición de la lista principal que se muestra por pantalla, se ejecutara el evento AT LINE-SELECTION. Este evento debemos ubicarlo después del eento START-OF-SELECTION. En ese momento se completan ciertas variables del sistema:
· SY-LSIND, contiene el índice de la lista del detalle, o sea, el numero de fila clickeada.
· SY-LISEL, tiene el contenido de la línea seleccionada.
· SY-LILLI, contiene la línea seleccionada de la lista (cuenta desde la primera línea del título)
· 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 detalle.
Programas a tener en cuenta, son programas de prueba estándar ABAP:
· DEMO_LIST_INTERACTIVE_1
· DEMO_LIST_INTERACTIVE_2
· DEMO_LIST_INTERACTIVE_3
· DEMO_LIST_INTERACTIVE_4
· Es un tipo de reporte ABAP, donde se muestra un primer listado por pantalla, con cierta información y
3.- Mi primer reporte interactivo
REPORT XXXXXXXXXX
* Declaración de datos
wa_usuarios LIKE LINE OF ti_usuarios,
v_dni TYPE z_dni.
START-OF-SELECTION.
* Cargar datos en tabla interna
PERFORM cargar_datos.
* Imprimo los datos ppor pantalla
PERFORM imprimir_tabla.
*Este es el evento que nos indica que línea hemos hecho clic del listado
AT LINE-SELECTION.
v_dni = sy-lisel(10).
TOP-OF-PAGE DURING LINE-SELECTION.
FORM imprimir_tabla .
LOOP AT ti_usuarios INTO wa_usuarios.
FORMAT COLOR COL_TOTAL INTENSIFIED.
READ TABLE ti_usuarios INTO wa_usuarios WITH KEY dni = v_dni.
IF sy-subrc EQ 0.
FORMAT COLOR COL_HEADING INTENSIFIED.
WRITE:/1(50) sy-uline.
WRITE:/1(1) sy-vline,
2(20) 'DNI',
22(1) sy-vline,
23(27) wa_usuarios-dni,
50(1) sy-vline.
WRITE:/1(1) sy-vline,
50(1) sy-vline.
WRITE:/1(1) sy-vline,
50(1) sy-vline.
WRITE:/1(1) sy-vline,
2(20) 'Dirección',
50(1) sy-vline.
WRITE:/1(1) sy-vline,
2(20) 'Código postal',
50(1) sy-vline.
WRITE:/1(1) sy-vline,
50(1) sy-vline.
WRITE:/1(50) sy-uline.
ENDIF.
ENDFORM.