✒️ABAP / Los reportes ALV Por Lisimaco Prieto Herrera
ABAP Los reportes ALV

Los reportes ALV
Es una herramienta exclusiva de ABAP, que se utiliza para crear reportes de manera eficaz, rápida y estandarizada.
ABAP List Viewer
Ventajas
Simplifica el desarrollo de reportes, por lo tanto se reduce los tiempos de programación.
Proporciona a los reportes muchas funcionalidades estándar. Entre las funciones integradas para manipular los resultados encontramos opciones como: la clasificación, obtener totales, aplicar filtros, el ordenamiento por columna o la posibilidad 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.
Proporcionar una salida por pantalla estandarizada e uniforme.
Ejemplo
Historia de los reportes ALV
Repasemos un poco la historia de los reportes ALV.
La lista ABAP: la primera herramienta para la salida de datos en pantalla fue denominada Lista ABAP. Esta salida se genera usando la sentencia WRITE para mostrar una línea de datos en la pantalla. Para presentar los datos en un formato de cuadricula, los campos debían colocarse en posiciones estáticas específicas en la pantall 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 inconveniente para los desarrolladores como para los usuarios. Los desarrolladores tienen que escribir el código manualmente para generar cada campo, así como los encabezados de columna y los totales o subtotales. Y a los usuarios solo se les ofrece una estructura de informe rígida que no pueden modificar sin solicitar un cambio en el programa. La realización de cambios en esos informes resulta inconveniente y requiere mucho tiempo.
ALV Lista: luego llego el framework ALV, cuya primera implementación fue el denominado ALV List o 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 clasificación, el filtrado y los subtotales. Más importante aún, los usuarios podían elegir que columnas querían ver y en orden. Sus preferencias se pueden guardar en un diseño que se aplicará la próxima vez que ejecuten el reporte.
Para los desarrolladores, la tecnología ALV ofreció un conjunto unificado de herramientas para la presentación de datos, sin tener que calcular la posición de la pantalla de cada columna y escribir todo el código manualmente. Al utilizar un ALV, los desarrolladores solo debían preocuparse por preparar los datos comerciales y el ALV se encargaba de la presentación.
ALV Grilla: el siguiente paso en la evolución de los ALV fuel el ALV Grid o ALV Grilla, el cual es un formato tabular similar a Microsoft Excel que se utiliza hasta el día de hoy. Las primeras implementaciones del ALV Grilla utilizaron módulos de funciones de SAP con nombres que comenzaban con REUSE_ALV.
Junto con el ALV grilla también se incorpora el ALV jerárquico el cual se utiliza sólo en los casos donde se muestran datos de cabecera y de detalle.
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 a objetos en SAP ERP versión 4.6C. Aquí se utilizaron clases 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ódulos de funciones, pero una diferencia notable fue que permitió que un objeto ALV se vincule a un contenedor personalizado en una pantalla. Esto hizo posible presentar no solo un reporte a pantalla completa, sino varios contenedores ALV en la misma pantalla.
El framework SALV: la implementación actual de framework ALV se llama SALV y ha estado disponible desde SAP Netweaver 7.0. Este framework lo proporcionan clases de objetos con nombres que comienzan con CL_SALV y admite los formatos de tablas ALV, árbol ALV y lista secuencial jerárquica.
ALV con IDA: una variedad más reciente de framework SALV, denominada SAP List Viewer with Integrated Data Access (ALV 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.
Actualmente si queremos desarrollar un reporte podemos usar cualquiera de las opciones descritas anteriormente.
Si bien la Lista ABAP, es decir los reportes que se crean mediante la sentencia WRITE presentan muchas complicaciones y limitaciones, la realidad es que se los continua usando ya que en determinados casos son útiles.
Respectos de los reportes ALV, actualmente podemos usar cualquiera de las opciones que describimos, es decir podemos crear un ALV usando los módulos de funciones REUSE_ALV, la orientación a objetos las clases CL_GUI_ALV o la orientación a objetos con las clases CL_SALV.
Solo disponemos de SAP HANA como base de datos entonces tenemos la posibilidad de implementar ALV con IDA.
Creación de un ALV con módulos de función:
Los tipos de ALV más comúnmente usados son 3:
Grillas
Listas
Jerárquico
Las grillas y las listas pueden usarse en cualquier reporte, pero el jerárquico se usa sólo en los casos donde se muestran datos de cabecera y detalle, como por ejemplo los números de factura y los detalles o las aerolíneas y los vuelos.
Cada ALV corresponde a un módulo de funciones diferente.
Para las grillas usamos el módulo de funciones REUSE_ALV_GRID_DISPLAY
Para las listas usamos el módulo de funciones REUSE_ALV_LIST_DISPLAY
Para el jerárquico usamos el módulo de funciones REUSE_ALV_HIERSEQ_LIST_DISPLAY
Mi primer reporte 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_FIEDLCAT_ALV y SLIST_FIELDCAT_ALV, otra estructura para la configuración de la salida que es del tipo SLIS_LAYOUT_ALV y una variable tipo SY-REPID, para almacenar el mobre del reporte.
La declaración de la tabla interna de salida del ALV
Selección de los datos que se mostrarán en el ALV
Dentro del START-OF-SELECTION vamos a crear la subrutina SELECCIONAR_DATOS.
Esta subrutina selecciona los registros de datos de la tabla BD ZTABLA_USUARIOS que mostraremos en el listado de salida y los almacena en la tabla interna TI_USUARIOS.
Armado del catálogo del ALV
También dentro del evento 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, completaremos para cada columna del listado, los siguientes campos pertenecientes a la tabla interna del catálogo.
Existen muchísimas mas propiedades del catálogo que se pueden configurar según lo que necesitemos mostrar en el listado.
Para más información debemos hacer doble clic en el tipo SLIST_T_FIEDLCAT_ALV.
Configuración de la salida del ALV
También dentro del evento START-OF-SELECTION vamos a crear la subrutina CONFIGRAR_LAYOUT en donde configuramos ciertos aspectos de la salida del ALV.
Para ello vamos a completar con valores la estructura WA_LAYOUT tal como vemos en la siguiente imagen.
Existen muchas más opciones a configurar en el layout de un reporte ALV.
Para más información debemos dar doble clic en el tipo SLIS_LAYOUT_ALV.
Ejecución del módulo de funciones del ALV
Si queremos un reporte tipo grilla, ejecutaremos el módulo de funciones REUSE_ALV_GRID_DISPLAY. Si queremos un reporte tipo lista, ejecutaremos el módulo de función REUSE_ALV_LIST_DISPLAY. Ambos módulos de funciones se completan de la misma manera. Como dijimos anteriormente, los ALV jerárquicos se usan 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 evento START-OF-SELECTION vamos a crear la subrutina EJECUTAR_ALV
Si es grilla ejecutaremos el módulo de funciones RESUSE_ALV_GRID_DISPLAY:
Y si es lista ejecutaremos el modulo de funciones REUSE_ALV_LIST_DISPLAY
 
 
 
Sobre el autor
Publicación académica de Lisimaco Prieto Herrera, en su ámbito de estudios para el Curso SAP ABAP.
Lisimaco Prieto Herrera
Profesión: Ingeniero de Sistemas - Colombia - Legajo: DV67X
✒️Autor de: 96 Publicaciones Académicas
🎓Egresado de los módulos:
Presentación:
Ingeniero de sistemas con amplia experiencia en el desarrollo de software para el sistema sap r/3 en lenguaje de programación abap.
Certificación Académica de Lisimaco Prieto






Disponibilidad Laboral: FullTime


















