
Qué es un ALV
(ABAP list Viewer), Es una herramienta exclusiva de ABAP, que se utiliza para crear reportes de manera eficaz, rápida y estandarizada.
Ventajas:
Ø simplifica el desarrollo de reportes, por lo tanto se reducen los tiempos de programación,
Ø proporciona funcionalidad estándar al reporte
Ø proporciona una salida por pantalla estandarizada e uniforme.
La creación de un Reporte ALV se basa en la utilización de funciones y los tres tipos más usados son: Grillas, Listas (se pueden utilizar en cualquier reporte) y Jerárquicos (solo en casos donde se muestran datos de cabecera y detalle).
Cada tipo pertenece a una función diferente:
- Grillas: --> REUSE_ALV_GRID_DISPLAY
- Listas: --> REUSE_ALV_LIST_DISPLAY
- Jerárquico: --> REUSE_ALV_HIERSEQ_LIST_DISPLAY
Como el Reporte ALV requiere interacción con el usuario no se utiliza en modo Batch.
Pasos para crear un reporte ALV
Ø Se ha de declarar un tipo SLIS, necesario para utilización de reportes ALV. Se han de declarar una tabla 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 del tipo SLIS_LAYOUT_ALV y una variable dl tipo SY-REPID, para almacenar el nombre del programa.
Ø Declarar la tabla de salida que se mostrará en el ALV.
Ø Seleccionar los datos de la tabla que se mostrará en el listado de salida y que se guardará en una tabla interna.
Ø Creamos 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.
Ø Cargar con valores la estructura ST_LAYOUT para configurar ciertos aspectos de la salida del ALV.
Ø Ejecución de la función ALV. Si queremos un reporte tipo grilla se ejecuta la función REUSE_ALV_GRID_DISPLAY y si la queremos tipo lista se ejecuta REUSE_ALV_LIST_DISPLAY.
Ø Dado que los reportes ALV requieren de la interacción del usuario con el reporte, ya que proporcionan muchísimas funcionalidades estándar que el usuario del reporte puede utilizar sin necesidad de ser programadas entonces no tiene el menor sentido la utilización de ALVs en procesos que se ejecutarán de fondo, en donde el usuario no podrá sacar provecho de dicha funcionalidad. Éste punto es importante tenerlo en cuenta al momento de realizar la especificación o diseño técnico del reporte, es el momento donde se piensan todos los aspectos y alcances del programa a crear.
Ø Debemos tener en cuenta que por convención de ABAP colocaremos siempre a la derecha de la tabla interna del catálogo tanto en la función que genera la grilla como en la que genera la lista una llave abierta y una llave cerrada.
Ø La principal diferencia entre el ALV Grilla 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 la cual podemos colocar un globo con totales y subtotales lo cual no es posible con el ALV List. El ALV List genera una lista de visualización utilizando la sentencia WRITE , esto le da la misma apariencia o look-and-feel de los llamados reportes clá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 List. El ALV Grid no se puede ejecutar de fondo por lo que el módulo de funciones REUSE-ALV traducirá 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. Por último el ALV List permite solo la visualización de los datos en cambio con la ALV Grid podemos editar los registros o los campos si así lo deseamos.