
Introducción: Los reportes interactivos permiten explorar datos jerárquicamente: un listado principal despliega detalles al hacer clic.
1 ¿Qué es un Reporte Interactivo?
Definición clave:
"Reporte ABAP que muestra datos en niveles: un listado principal genera sublistados al seleccionar líneas."
Características principales:
-
Navegación por niveles: Hasta 20 niveles de profundidad (listado 1 → listado 2 → ...).
-
Solo modo online: Requiere interacción del usuario (no ejecutable en background).
-
Ventaja clave: Menos código que programas de diálogo para flujos complejos.
-
Botones críticos: BACK (←) para retroceder y EXIT (X) para salir.
Ejemplo típico:
-
Nivel 1: Lista de usuarios (DNI, Nombre).
-
Nivel 2: Detalles del usuario seleccionado (país, código postal, región).
2 Eventos y Variables Clave
Eventos esenciales:
-
AT LINE-SELECTION: Se dispara al hacer doble clic en una línea.
-
TOP-OF-PAGE: Cabecera del listado principal.
-
TOP-OF-PAGE DURING LINE-SELECTION: Cabecera para listados secundarios.
Variables del sistema críticas:
Variable Función Ejemplo de uso
| SY-LSIND |
Indica el nivel actual (0 = principal, 1 = primer detalle, etc.). |
IF sy-lsind = 1. ... ENDIF. |
| SY-LISEL |
Contiene el texto completo de la línea seleccionada. |
Extraer DNI de la línea. |
| SY-LILLI |
Número de línea seleccionada en el listado. |
READ TABLE lt_data INDEX sy-lilli. |
| SY-CUROW |
Posición vertical del cursor en pantalla. |
Validar zona de clic. |
Tip: Usa programas demo para practicar:
DEMO_LIST_INTERACTIVE_1 a DEMO_LIST_INTERACTIVE_4.
3 Creación Paso a Paso: Reporte de Usuarios
Programa: ZREPORTE_INT_USUARIOS
1. Listado Principal (START-OF-SELECTION):

Salida:

2. Capturar Selección (AT LINE-SELECTION):

3. Generar Detalle (Subrutina):

4. Cabeceras Dinámicas:

5. Ventana Emergente (Opcional):

Errores Comunes y Soluciones
Error Solución
| SY-LSIND no incrementa |
Verificar doble clic en área válida. |
| Detalle muestra datos equivocados |
Validar extracción de clave desde SY-LISEL. |
| Cabecera no cambia |
Usar TOP-OF-PAGE DURING LINE-SELECTION. |
| Popup no aparece |
Asegurar que WINDOW esté antes de WRITE. |
Flujo de Ejemplo:

Conclusión
-
Takeaway principal:
"Los reportes interactivos usan AT LINE-SELECTION y variables como SY-LSIND para crear navegación multi-nivel con mínimo código."
-
Claves para el éxito:
-
Domina SY-LISEL (línea seleccionada) y SY-LSIND (nivel actual).
-
Usa WINDOW para ventanas emergentes.
-
Limita a 20 niveles (límite SAP).
Términos técnicos:
Reporte interactivo, AT LINE-SELECTION, SY-LSIND, SY-LISEL, WINDOW STARTING AT, TOP-OF-PAGE DURING LINE-SELECTION.
¡Consejo final!
Combina reportes interactivos con SET PF-STATUS para añadir botones personalizados.