Hi,
Visor de listas ABAP
Las características comunes de un informe son la alineación de columnas, ordenación, filtrado, subtotales, totales, etc. Para implementar esto, se requiere mucha codificación y lógica. Para evitar eso, podemos utilizar un concepto llamado Visor de Listas ABAP (ALV).
Esto nos ayuda a implementar todas las características mencionadas de manera muy efectiva.
Usando ALV, podemos tener tres tipos de informes:
1. Informe Simple
2. Informe de Bloque
3. Informe Secuencial Jerárquico
Hay algunos módulos de funciones que permitirán producir los informes anteriores sin mucho esfuerzo.
Todas las definiciones de tablas internas, estructuras y constantes se declaran en un type-pool llamado SLIS.
1. INFORME SIMPLE.
Los módulos de funciones importantes son
a. Reuse_alv_list_display
b. Reuse_alv_fieldcatalog_merge
c. Reuse_alv_events_get
d. Reuse_alv_commentary_write
e. Reuse_alv_grid_display
A. REUSE_ALV_LIST_DISPLAY : Este es el módulo de función que imprime los datos.
Los parámetros importantes son:
I. Exportar:
i. I_callback_program : identificación del informe
ii. I_callback_pf_status_set : rutina donde un usuario puede establecer su propio estado de PF o cambiar la funcionalidad del estado de PF existente
iii. I_callback_user_command : rutina donde se manejan los códigos de función
iv. I_structure name : nombre de la tabla de diccionario
v. Is_layout : estructura para establecer el diseño del informe
vi. It_fieldcat : tabla interna con la lista de todos los campos y sus atributos que se imprimirán (esta tabla puede ser poblada automáticamente por el módulo de función REUSE_ALV_FIELDCATALOG_MERGE
vii. It_events : tabla interna con una lista de todos los eventos posibles de ALV y sus nombres de formulario correspondientes.
II. Tablas:
i. t_outtab : tabla interna con los datos a mostrar
B. REUSE_ALV_FIELDCATALOG_MERGE : Este módulo de función se utiliza para poblar un catálogo de campos que es esencial para mostrar los datos en ALV. Si los datos de salida provienen de una sola tabla de diccionario y se seleccionan todas las columnas, entonces no es necesario crear exclusivamente el catálogo de campos. Es suficiente mencionar el nombre de la tabla como parámetro (I_structure name) en el REUSE_ALV_LIST_DISPLAY. Pero en otros casos necesitamos crearlo.
Los parámetros importantes son:
I. Exportar:
i. I_program_name : identificación del informe
ii. I_internal_tabname : la tabla de salida interna
iii. I_inclname : incluir o el nombre del informe donde se manejan todas las formas dinámicas.
II Cambio
ct_fieldcat : una tabla interna con el tipo SLIS_T_FIELDCAT_ALV que es
declarado en el type pool SLIS.
C. REUSE_ALV_EVENTS_GET : Devuelve una tabla de eventos posibles para un tipo de lista
Parámetros:
I. Importar:
Et_Events : La tabla de eventos se devuelve con todos los eventos de RETROCESO posibles
para el tipo de lista especificado (columna 'NOMBRE'). Para que los eventos sean procesados por Callback, su campo 'FORMULARIO' debe estar lleno. Si el campo está inicializado, se ignora el evento. La entrada se puede leer de la tabla de eventos, se llena el campo 'FORMULARIO' y se modifica la entrada utilizando constantes del type pool SALV.
II. Exportar:
I_List_type :
0 = lista simple REUSE_ALV_LIST_DISPLAY
1 = lista jerárquica-secuencial REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = lista de bloque simple REUSE_ALV_BLOCK_LIST_APPEND
3 = lista de bloque jerárquica-secuencial
REUSE_ALV_BLOCK_LIST_HS_APPEND
D. REUSE_ALV_COMMENTARY_WRITE : Se utiliza en el evento Top-of-page para imprimir los encabezados y otros comentarios de la lista.
Parámetros:
I. it_list_commentary : tabla interna con