
Introducción y creación de ALV
¿Qué es un ALV?
ALV (ABAP List Viewer) es una herramienta exclusiva de ABAP para crear reportes de forma eficaz, rápida y estandarizada.
Ventajas principales: simplifica el desarrollo de reportes, reduce los tiempos de programación y ofrece muchas funcionalidades estándar para manipular los resultados.
Funciones integradas: clasificación, totales, filtros, orden por columnas, ocultar columnas y exportar resultados a Excel, CSV, HTML, entre otros.
Proporciona una salida estandarizada y uniforme en pantalla.
Evolución histórica de los reportes ALV
- La primera herramienta fue la "lista ABAP" con salida basada en la sentencia WRITE, donde los campos se posicionaban manualmente.
- Los informes tradicionales eran inflexibles para usuarios y requerían mucho trabajo para desarrolladores.
- Llegó el framework ALV (ALV List), mejorando el alineado de columnas y añadiendo barras de herramientas para clasificación y filtrado.
- El ALV Grid introdujo un formato tabular similar a Excel, utilizando módulos de funciones "REUSE_ALV".
- ALV jerárquico permite mostrar datos de cabecera y detalle.
- Se incorporó la programación orientada a objetos en SAP con las clases "CL_GUI_ALV", permitiendo múltiples contenedores ALV en una misma pantalla.
- El framework SALV, vigente desde SAP NetWeaver 7.0, mejora la flexibilidad y soporta varios formatos de tablas.
- ALV con IDA: variante reciente que aprovecha la base de datos SAP HANA, usando la clase "CL_SALV_TABLE_IDA".
- Actualmente se puede elegir entre varias opciones según la necesidad y tecnología disponible.
Tipos de ALV y sus módulos de funciones
Tipos más comunes: grilla, lista y jerárquico.
Grillas y listas se pueden usar en cualquier reporte; jerárquico es para datos con cabecera-detalle (ej. facturas y detalles).
Módulos de funciones por tipo:
- Grilla: REUSE_ALV_GRID_DISPLAY
- Lista: REUSE_ALV_LIST_DISPLAY
- Jerárquico: REUSE_ALV_HIERSEQ_LIST_DISPLAY
Creación de un reporte ALV paso a paso
- Paso 1: Declaración de tipos, estructuras y tablas internas requeridas para el ALV (ej. tipo "SLIS_T_FIELDCAT_ALV").
- Paso 2: Declarar la tabla interna de salida (ej. "ti_usuarios").
- Paso 3: Seleccionar los datos a mostrar en el ALV utilizando una subrutina para poblar la tabla interna.
- Paso 4: Armar el catálogo del ALV, configurando los campos/columnas a presentar.
- Paso 5: Configurar el layout del ALV ajustando aspectos visuales y funcionales.
- Paso 6: Ejecutar el módulo de funciones correspondiente según el tipo de presentación (grilla o lista).
Se mencionan subrutinas específicas para seleccionar datos, armar catálogo, configurar layout y ejecutar el ALV.
Existen muchas opciones y propiedades configurables tanto en el catálogo como en el layout del ALV.
Características de los reportes ALV
- Los reportes ALV requieren la interacción del usuario, ya que ofrecen múltiples funcionalidades estándar directamente accesibles desde el reporte.
- No es recomendable utilizar ALV en procesos que se ejecutarán en segundo plano, porque el usuario no puede aprovechar estas funcionalidades.
- Esta consideración debe tenerse presente durante la especificación o diseño técnico del reporte.
- Por convención en ABAP, se colocan llaves abiertas y cerradas a la derecha de la tabla interna del catálogo.
Diferencias entre ALV Grid y ALV List
La principal diferencia es visual: ALV Grid permite encabezados, logo, totales y subtotales que ALV List no puede mostrar.
- ALV List utiliza la sentencia right y se asemeja a los reportes clásicos.
- ALV Grid ofrece una mejor estética, facilita el copiado de columnas y permite editar registros y campos.
- ALV Grid usa controles ActiveX y consume más memoria.
- ALV List solo permite la visualización, no la edición de datos.
- Si un reporte ALV Grid se ejecuta en segundo plano, el sistema lo transforma automáticamente en ALV List.
Componentes esenciales para desarrollar un reporte ALV
- Es obligatorio declarar el type pool SLIS, que contiene las estructuras y tablas necesarias para trabajar con ALV.
- Se requiere una tabla interna para almacenar los datos.
- Hay que definir una estructura del mismo tipo que la tabla interna para trabajar con ella.
- Debe declararse la tabla interna del catálogo y su respectiva estructura, ambas definidas en SLIS.
- Se necesita una estructura de layout (también de SLIS) para configurar la presentación del ALV.
- Se utiliza el nombre del programa ABAP en ejecución (SY-REPID).
Metodología para crear un reporte ALV
Seleccionar los datos usando sentencias SELECT sobre la tabla base.
Armar el catálogo, configurando cada propiedad relevante de los campos que se van a mostrar.
Configurar el layout: asignar título, activar formato cebra (líneas alternas en distintos colores), optimización de ancho de columnas, entre otras propiedades.
Ejecutar el reporte usando los módulos de función REUSE_ALV_GRID_DISPLAY o REUSE_ALV_LIST_DISPLAY según corresponda.
ALV Grid es más utilizado por sus funcionalidades y apariencia.
Ejecución y análisis del ejemplo
Se utiliza un reporte ejemplo llamado zreporte_alb.
El proceso ejemplifica desde la selección de datos (13 registros de usuarios) hasta la configuración y ejecución del ALB en modo debugging.
Se revisa cómo completar el catálogo y el layout para luego ejecutar el reporte ALV.
Se muestra que la grilla ALV presenta funcionalidades estándar, accesibles sin programación adicional.
Sugerencias
Profundizar sobre las opciones avanzadas de configuración de catálogo y layout en ALV.
Explorar y practicar la creación de reportes ALV utilizando los distintos módulos de funciones y orientaciones.
Verificar la disponibilidad de SAP HANA para implementar ALV con IDA si se requiere mayor rendimiento y funcionalidad.
Recordar validar si el reporte ALV será usado en background para evitar funcionalidades innecesarias.
Identificar si es necesario usar ALV Grid o ALV List según los requisitos visuales y funcionales del usuario.
Incluir siempre el type pool SLIS en la declaración de reportes ALV.
Configurar correctamente el layout para mejorar la presentación y usabilidad del reporte.