![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP Los reportes ALV
ABAP Los reportes ALV
![ABAP Los reportes ALV ABAP Los reportes ALV](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/64.jpg)
ALV: es una herramienta excluciva de ABAP, que se utiza para crear reportes de manera eficaz, rápida y estandarizada.
Las principales ventajas de los reportes ALV son:
- Simlifican el desarrollo de reportes, por lo tanto se reducen lod tiempos de programación.
- Proporcionan a los reportes muchas funcionalidades estándar. Entre las funciones integradas para manipular los resultados encontramos opciones como: la clacificación, obtener totales, aplicar filtros, el ordenamiento por columnas o la pocibilidad de ocultar columnas y también funciones para exportar los resultados en microsoft Excel, a un fichero local, a archivos CSV, en formato HTML, entre otras funciones más.
- Proporcionan una salida por pantalla estandarizada e uniforme.
La historia de los reportes ALV:
Para entender de dónde venimos y hacia dónde vamos en lo que respecta a los reportes ALV de ABAP
Las opciones que tenemos disponibles a la hora de crear un ALV:
- La Lista ABAP: la primera herramienta para la salida de datos en pantalla fue la denominada Lista ABAP. Esta salida se genera usando la sentencia WRITE para mostrar una linea de datos en la pantalla. Para presentar los datos en un formato de cuadricula, los campos debian colocase en posiciones estáticas especificas en la pantalla mientras se procesan los datos en un bucle o un ciclo. Este tipo de presentación, tradicional en los sistemas basados en mainframe durante el último siglo, resulta incoveniente tanto para los desarrolladores como para los usuarios. Los deserrolladores tienen que escribir todo el código manualmente para generarcada campo, así como los encabezados de columna y los totales o subtotales. Y a los usuarios solo se les ofrece una estructura de informe también resulta inconveniente y requiere muho tiempo.
- ALV Lista: luego llego el framework ALV, cuya primera implementación fue el denominador ALV Lista, lo que fue una mejora importante con respecto a la funcionalidad de su predecesor la lista ABAP, ya que en el, las columnas están bien alineadas y la barra de herramientas ofrece funcionalidades adicionales, como la clacificación, el filtrado y los subtotales. Más importante aún, los usuarios podian elegir qué columnas qurian ver y en qué orden. Sus preferencias se pueden guardar en un diseño que se aplicará la próxima vez que ejecuten el reporte.
- ALV Grilla: el siguiente paso en la evolución de los ALV Grid o ALV Grilla, el cual es un formato tabular similar a Micrisoft Excel que se utiliza hasta el dia de hoy. Las primeras implementaciones del ALV Grilla utilizaron módolos de funciones de SAP con nombres que comenzaban con REUSE_ ALV.
- El primer framework ALV orientado a objetos: el siguiente paso dentro del framework ALV vino de la mano de la introducción estratégica de la programación ABAP orientada en objetos en SAP ERP verción 4.6C. aqui se utilizaron cleses de objetos que comienzan con CL_GUI_ALV en lugar de módulos de funciones. Visualmente, la implementación basada en clases produce resultados muy similares a la implementación a través de módulo de funcioenes, pero una diferencia notabla fue que permitió que un objetoALV se vincula a un contenedor personalizado en una pantalla. Esto hizo posible precentar no solo un reporte a pantalla completa, sino varios contenedores ALV en la misma pantalla.
- El framework SALV: la implementacionactual del fremework ALV se llama SALV y ha estado disponible al menos desde SAP Netwearer 7.0. este framework lo proporciona claces de objeos con nombres que comienzan con CL_SALV y admite los formatos de tabla ALV,árbol ALV y lista secuencial jerárquia.
- ALV con IDA: una variedad más reciente del reamework SALV, denominada SAP list Viewer eith integrated Data Access (nALV con IDA), aprovecha la funcionalidad de la base de datos en memoria SAP HANA. para realizar esta implementación se utiliza la clase de objetos CL_SALV_TABLE_IDA.
La creación de unALV mediante módulos de funciones.
Los tipos de ALV más comúnmente utilizados son tres:
- Grillas
- Listas
- jerárquico
Las grillas y las listas pueden utilarse en cualquier reporte, para el jerárquico se utiliza sólo en los casos donde se muestran datos de cabecera y de detalle, como por ejemplo los números de factura y los detalles o las aerolineas y los vuelos.
Ahora bien cada tipo de ALV le corresponde un módulo de funciones diferente.
- Para las grillas utilizamos el módulo de funciones --> REUSE_ALV_GRID_DISPLAY
- Para la listas utilizamos el módulo de funciones --> REUSE_ALV_LIST_DISPLAY
- Para el jerárquico utilizamos el módulo de funciones --> REUSE_ALV_HIERSEQ_LIST_DISPLAY
Mi primer reporte ALV:
Vamos a crear nuetro primer reporte ALV utilizando los modulos de funciones REUSE_ALV y para esto seguiremos los siguiente pasos.
Paso 1: Las declaraciones de tipos, estructuras y tablas internas propias del ALV.
Dentro de este paso, declaramos el tipo SLIS, que es necesario para la utilización de reportes ALV.
También declaramos una tabla interna y una estructura para el catálogo del ALV que son del tipo SLIS_T_FIELDCAT_ALV y SLIS_FIELDCAT_ALV, otra estructura para la configuración de la salida que es del tipo SLIS_LAYOUT_ALV y una variable del tipo SY-REPID, para almacenar el nombre del programa.
Paso 2: La declaración de la tabla interna de salida del ALV
Vamos a declarar la tabla interna de salida TI_USUARIOS que se mostrará en el ALV.
Paso 3: la selección de lños datos que se mostrarán en el ALV
Dentro del evento START-OF-SELECTION vamnos a crear la subrutina SELECCONAR_DATOS.
Esta subrutina selecciona los registros de datos de la tabla base de datos ZTABLA_USUARIOS que mostramos en el listado de salida y los almacena en la tabla interna TI_USUARIOS.
Paso 4: el armado del catálogo del ALV
También dentro del avento START-OF-SELECTION vamos a crear la subrutina ARMAR_CATALOGO en donde armamos el catálogo del ALV con los campos que serán las columnas del reporte.
Para ello, completamos para cada columna del listado, los siguientes campos pertenecientes a la tabla interna del catálogo:
Paso 5: La configuración de la salida del ALV
También dentro del evento START-OPF-SELECTION vamoas a crear la subrutina CONFIGURA_LAYOUT endonde configuramos ciertos aspectos de la salida del ALV. Para ello vamos a completar con valores la estructura WA_LAYOUT.
paso 6: La ejecución del módulo de funciones del ALV
Por último, lo que nos queda es la ejecución del módulo de funciones del ALV.
Si queremos un reporte tipo grilla, ejecutamos el módulo de funciones REUSE_ALV_GRID_DISPLAY. Si queremos un reporte tipo lista, ejjecutamos el módulo de funciones REUSE_ALV_LIST_DISPLAY. Ambos módulos de funciones se completan de la misma manera. Como dijimos anteriormente, los ALV jerárquicos se utiliza para cuando tenemos que mostrar datos de cabecera y detalle, por lo tanto no es aplicable para este ejemplo.
Para ello, también dentro del avento START-OF-SELECTION vamoa a crear la subrutina EJECUTAR_ALV.
Si es grilla ejecutamos el módulo de funciones REUSE_ALV_GRID_DISPLAY. Y es lista ejecutamos el módulo de funciones REUSE_ALV_LIST_DISPLAY.
 
 
 
Sobre el autor
Publicación académica de Javier Miguel Angel Barcelo, en su ámbito de estudios para la Carrera Consultor ABAP.
Javier Miguel Angel Barcelo
Profesión: Militar - Argentina - Legajo: DQ34X
✒️Autor de: 80 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado
Certificación Académica de Javier Angel