![](/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/405.jpg)
Reportes ALV: Grids y Listas
1 ¿Qué es un ALV?
Un ALV (ABAP List Viewer) es una herramienta exclusiva de ABAP que se utiliza para crear reportes de manera eficaz, rápida y estandarizada.
Las principales ventajas de los reportes ALV son:
- Simplifican el desarrollo de reportes, por lo tanto se reducen los tiempos de programación.
- Proporcionan a nuestros reportes un montó de funcionalidad estándar.
- Proporcionan una salida por pantalla estandarizada e uniforme.
<< imagen 1.1 >>
La creación de un reporte ALV se basa en la utilización de funciones. Los tipos de ALV más comúnmente usados son tres. Grid (grillas), Listas y Jerárquico.
Los Grid y las Listas pueden utilizarse en cualquier reporte, pero el Jeráruico se puede utilizar solo en los casos donde se muestran datos de cabecera y de detalle, como por ejemplo números de factura y detalles.
Cada tipo de ALV se corresponde con una función diferente. Son las siguientes:
- Grid => REUSE_ALV_GRID_DISPLAY
<< imagen 1.2 >>
- Listas => REUSE_ALV_LIST_DISPLAY
<< imagen 1.3 >>
- Jerárquico => REUSE_ALV_HIERSEQ_LIST_DISPLAY
<< imagen 1.4 >>
Audio: Dado que los reportes ALV requieren de la interacción del usuario con el reporte, ya que proporcionan muchísima funcionalidades estándar que el usuario del reporte puede utilizar sin necesidad de ser programado, entonces no tiene ningún sentido la utilización de ALV en procesos que se ejecutarán de fondo, en donde el usuario no podrá sacar provecho de dicha funcionalidad. Este punto es importante tenerlo en cuenta al momento de realizar la especificación o diseño técnico del reporte, que es el momento en donde se piensa en todos los aspectos y alcances del proceso a crear.
2 Mi primer reporte ALV
Vamos a crear nuestro primer reporte ALV. Para esto seguimos los siguientes pasos:
1.- Declaraciones de tipos, estructuras y tablas propias del ALV
En este paso declaramos el tipo SLIS, que será necesario para la utilización de reportes ALV.
<< imagen 2.1 >>
También definimos más objetos:
- Una tabla y una estructura para el catálogo del ALV, del tipo SLIS_T_FIELDCAT_ALV y SLIS_FIELDCAT_ALV.
- Una estructura para la configuración de la salida del ALV, de tipo SLIS_LAYOUT_ALV.
- Una variable del tipo SY-REPID para almacenar el nombre del programa.
<< imagen 2.2 >>
2.- Declaración de la tabla de salida del ALV
Vamos a declarar la tabla de salida TI_USUARIOS que se mostrará en el ALV.
<< imagen 2.3 >>
3.- Selección de los datos que se mostrarán en el ALV
A continuación seleccionamos los datos de la tabla ZTABLA_USUARIOS que mostraremos en el listado de salida, y que guardamos en la tabla interna TI_USUARIOS declarada en el paso anterior.
<< imagen 2.4 >>
4.- Montaje del catálogo del ALV
Montamos el catálogo del ALV con los campos que serán las columnas de nuestro reporte. Para ello, completaremos para cada columna del listado los siguientes campos pertenecientes a la tabla del catálogo:
<< imagen 2.5 >>
Es decir, nos generamos una tabla interna con los datis de cada canoi de la cabecera para las columnas del ALV.
Existen muchas propiedades más del catálogo que se pueden configurar según lo que necesitemos mostrar en el listado. Podemos visualizarlas en el tipo de datos SLIS_T_FIELDCAT_ALV.
5.- Configuración de la salida del ALV
Vamos a cargar con valores la estructura ST_LAYOUT para configurar ciertos aspectos de la salida del ALV.
<< imagen 2.6 >>
Existen muchas más opciones de configuración para el layout de un reporte ALV. Podemos visualizarlas en el tipo de datos SLIS_LAYOUT_ALV.
6.- Ejecución de la función del ALV
Por último, ejecutamos la función del ALV. Si queremos un reporte tipo Grid, ejecutaremos la función REUSE_ALV_GRID_DISPLAY. Si queremos un reporte tipo lista, ejecutaremos la función REUSE_ALV_LIST_DISPLAY.
Ambas funciones se completan de la misma manera. Como se ha visto anteriormente, los ALV jerárquicos se utilizan para cuando tenemos que mostrar datos de cabecera y detalle, por lo tanto no es aplicable para este ejemplo.
En el caso de un ALV tipo Grid:
<< imagen 2.7 >>
En el caso de un ALV tipo Lista:
<< imagen 2.8 >>
Audio: Debemos tener en cuenta que por convención de ABAP colocaremos siempre a la derecha de la tabla interna de catálogo, tanto en la función que genera el Grid como en la que genera la lista, un corchete abierto y un corchete cerrado.
Finalmente si ejecutamos el reporte veremos la siguiente imagen en el caso de ALV tipo Grid:
<< imagen 2.9 >>
Y la siguiente imagen en el caso de ALV tipo Lista:
<< imagen 2.10 >>
Audio: La principal diferencia entre el ALV Grid y el ALV Lista se encuentra en la visualización, la cual es bastante diferente entre ambas opciones. A su vez el ALV Grid permite la generación de un encabezado en la parte superior del listado, en el cual podemos colocar un logo con totales y subtotales lo cual no es posible con el ALV Lista. El ALV Lista genera una lista de visualización utilizando la sentencia "Write". Esto le da la misma apariencia o look-and-feel que los llamados reportes básicos. El ALV Grid es más bonito visualmente y permite copiar y pegar columnas en donde queramos, cuestión que no es posible con el ALV Lista. El ALV Grid no se puede ejecutar de fondo, por lo que el módulo de funciones "reuse-alv" traduce automáticamente la salida en pantalla a ALV List si ejecutamos el reporte de fondo. El ALV Grid utiliza controles active-x en el servidor de presentación, por lo que consume más memoria en el servidor que la ALV List. Y por último, el ALV List permite únicamente la visualización de los datos, en cambio con la ALV Grid podemos editar los registros o los campos si así lo deseamos.
 
 
 
Favorito:
Está publicación ha sido agregada a sus favoritos por: Lorena Amoretti
Sobre el autor
Publicación académica de José Antonio Saavedra Rodríguez, en su ámbito de estudios para la Carrera Consultor ABAP.
José Antonio Saavedra Rodríguez
El Salvador - Legajo: SX28V
✒️Autor de: 166 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP SD Nivel Avanzado
- Carrera Consultor en SAP SD Nivel Inicial