✒️ABAP Los reportes interactivos
ABAP Los reportes interactivos
Reporte Interactivo
Es un reporte donde se muestra un primer listado por pantalla con cierta información y luego haciendo doble clic a una linea determinada se accede a otros datos relaticos a esa linea y asi sucesivamente por n niveles.
Este solo puede ser ejecutado interactivo porque requiere iteración del usuario.
Eventos y variables de un reporte interactivo
El evento para trabajar con estas iteraciones se llama AT LINE-SELECTION
SY-LSIND contiene el nivel del listado donde estamos ubicados
SY-LISEL tiene el contenido de la linea seleccionada
SY-LILLI contiene la linea selecccionado comenzando desde el titulo que es la linea 1
SY-CUROW contiene la posición del cursor vertical
El evento TOP.OF-PAGE DURING LINE-SELECTION no permite imprimir los titulos asociados al detalle de los reportes
Programas estandar de SAP como ejemplo de reportes interactivo
DEMO_LIST_INTERACTIVE_1, DEMO_LIST_INTERACTIVE_2, DEMO_LIST_INTERACTIVE_3, DEMO_LIST_INTERACTIVE_4
Para capturar la linea que fue seleccionada hacemos lo siguiente:
AT LINE-SELECTION.
v_dni = sy-lysel(10) 'toma el dni a partir de la posicion 10
PERFORM generar_reporte_nivel2
Para imprimir el titulo de la pagina de detalle
TOP-OF-PAGE DURING LINE-SELECTION
Write:/ 'Detalle de los usuarios', sy-uline
La pantalla de detalle tambiens e puede mostrar emergente para ello se utiliza:
WINDOW STARTING AT 1 15
ENDING AT 79 23.
*&---------------------------------------------------------------------* *& Report ZPRUEBA_ABAP_5_4 *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT zprueba_abap_5_4. * Declaración de datos DATA: ti_usuarios TYPE STANDARD TABLE OF ztabla_usuarios, 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. *----------------------------------------------------------------------* AT LINE-SELECTION. *----------------------------------------------------------------------* v_dni = sy-lisel(10). PERFORM generar_reporte_nivel2. *----------------------------------------------------------------------* TOP-OF-PAGE DURING LINE-SELECTION. *----------------------------------------------------------------------* WRITE:/ 'Detalle de los Usuarios', sy-uline. *&---------------------------------------------------------------------* *& Form IMPRIMIR_TABLA *&---------------------------------------------------------------------* FORM imprimir_tabla . LOOP AT ti_usuarios INTO wa_usuarios. FORMAT COLOR COL_TOTAL INTENSIFIED. WRITE:/ wa_usuarios-dni, wa_usuarios-nombre_ape. ENDLOOP. ENDFORM. " IMPRIMIR_TABLA *&---------------------------------------------------------------------* *& Form CARGAR_DATOS *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM cargar_datos . CLEAR ti_usuarios. REFRESH ti_usuarios. SELECT * FROM ZTABLA_USUARIOS INTO TABLE ti_usuarios. ENDFORM. " CARGAR_DATOS *&---------------------------------------------------------------------* *& Form GENERAR_REPORTE_NIVEL2 *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM generar_reporte_nivel2 . 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, 2(20) 'Nombre y Apellido', 22(1) sy-vline, 23(27) wa_usuarios-nombre_ape, 50(1) sy-vline. WRITE:/1(1) sy-vline, 2(20) 'Estado usuario', 22(1) sy-vline, 23(27) wa_usuarios-estado_usu, 50(1) sy-vline. WRITE:/1(1) sy-vline, 2(20) 'Dirección', 22(1) sy-vline, 23(27) wa_usuarios-direccion, 50(1) sy-vline. WRITE:/1(1) sy-vline, 2(20) 'Código postal', 22(1) sy-vline, 23(27) wa_usuarios-codigo_postal, 50(1) sy-vline. WRITE:/1(1) sy-vline, 2(20) 'Fecha Nacimiento', 22(1) sy-vline, 23(27) wa_usuarios-f_nacimiento, 50(1) sy-vline. WRITE:/1(50) sy-uline. ENDIF. ENDFORM. " GENERAR_REPORTE_NIVEL2
 
 
 
Sobre el autor
Publicación académica de James Johan Cardona Quinchia, en su ámbito de estudios para la Carrera Consultor ABAP.
James Johan Cardona Quinchia
Profesión: Gerente de Proyectos - Colombia - Legajo: VB54F
✒️Autor de: 41 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado
Certificación Académica de James Cardona