Las características comunes deseadas de cualquier informe son "alineación de columnas", clasificación, filtrado, subtotales, totales, etc. Para implementarlos desde cero, se debe poner mucho esfuerzo en la codificación. Para evitarlo, podemos utilizar un concepto llamado ABAP List Viewer (ALV).
En este tutorial aprenderá:
- Informe simple
- Informe de bloque
- Informes jerárquicos
- Variantes de visualización
Cada uno de estos informes proporciona módulos de funciones que ayudan a producir el resultado deseado sin mucho esfuerzo. Veámoslos en detalle:
Informe simple
Los módulos de funciones importantes en este informe son:
- Reuse_alv_fieldcatalog_merge
- Reuse_alv_list_display
- Reuse_alv_events_get
- Reuse_alv_grid_display
- Reuse_alv_commentary_write
REUSE_ALV_FIELDCATALOG_MERGE
Este módulo de función se utiliza para completar un catálogo de campo que es esencial para mostrar los datos en ALV.
Si los datos de salida son de una sola tabla de diccionario y todas las columnas están seleccionadas, entonces no es necesario que creemos exclusivamente el catálogo de campos. Es suficiente mencionar el nombre de la tabla como parámetro (I_structure_name) en REUSE_ALV_LIST_DISPLAY. Pero en otros casos necesitamos crearlo.
Nota: Fieldcatalog se puede completar manualmente también completando todos los detalles requeridos en la tabla interna
Los parámetros importantes son:
1. Exportar:
- I_program_name: ID del informe
- I_internal_tabname: la tabla de salida interna
- I_inclname: incluir o el nombre del informe donde se manejan todos los formularios dinámicos.
2. Cambio
- ct_fieldcat: una tabla interna con el tipo SLIS_T_FIELDCAT_ALV que se declara en el grupo de tipos SLIS.
REUSE_ALV_LIST_DISPLAY
Este es el módulo de función que imprime los datos.
Los parámetros importantes son:
1. Exportar:
- I_callback_program: id del informe
- I_bypassing_buffer: 'X'
- I_buffer_active: ''
- 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.
- I_callback_user_command: rutina donde se manejan los códigos de función.
- I_structure name: nombre de la tabla del diccionario
- Is_Layout: estructura para establecer el diseño del informe
- It_fieldcat: tabla interna con la lista de todos los campos y sus atributos que se van a imprimir (esta tabla puede ser poblada automáticamente por la función)
- It_events: tabla interna con una lista de todos los posibles eventos de ALV y sus correspondientes nombres de formulario.
2. Tablas:
- una. t_outtab: tabla interna con los datos a generar
REUSE_ALV_EVENTS_GET:
Devuelve la tabla de posibles eventos para un tipo de lista
1. Importar:
Et_Events: La tabla de eventos se devuelve con todos los posibles eventos CALLBACK para el tipo de lista especificado (columna 'NAME'). Para que los eventos sean procesados por la devolución de llamada, se debe completar su campo 'FORMULARIO'. Si el campo se inicializa, el evento se ignora. La entrada se puede leer de la tabla de eventos, el campo 'FORM' se rellena y la entrada se puede modificar utilizando constantes del grupo de tipos SLIS.
2. Exportar:
I_list_type: 0 = lista simple REUSE_ALV_LIST_DISPLAY
1 = lista secuencial jerárquica REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = lista de bloqueo simple REUSE_ALV_BLOCK_LIST_APPEND
3 = lista de bloqueo secuencial jerárquica REUSE_ALV_BLOCHS
REUSE_ALV_GRID_DISPLAY
Una nueva función de la versión ABAP4.6, para mostrar los resultados en cuadrícula en lugar de una vista previa.
Parámetros: igual que reuse_alv_list_display
Nota: Grid no puede manejar grandes volúmenes. Funciones como ordenar, desplazarse hacia abajo consumen muchos recursos / tiempo si el volumen de datos que se mostrarán es alto. No existe una definición clara tal que si la cantidad de datos es X, vaya a la lista o cuadrícula, pero el desarrollador tiene que tomar una llamada en función de su experiencia. Si no está seguro, la lista es la mejor opción.
REUSE_ALV_COMMENTARY_WRITE
Se utiliza en el evento Top-of-page para imprimir los encabezados y otros comentarios de la lista.
Parámetros importantes
- It_list_commentary: Tabla interna con los encabezados del tipo slis_t_listheader.
Esta tabla interna tiene tres campos:
- Tipo: 'H' - encabezado, 'S' - selección, 'A' - acción
- Clave: solo cuando el tipo es 'S'.
- Info: el texto que se imprimirá
Informe de bloque
Esto parece un informe simple, pero este informe solo tiene las características de ordenar y filtrar. Este informe se utiliza si tiene que mostrar más de un informe en la salida. Técnicamente hablando, si tiene varias tablas internas con datos que se mostrarán como bloques separados, optamos por el informe de bloques de ALV.
Las funciones importantes que se utilizan para crear este informe son:
- REUSE_ALV_BLOCK_LIST_INIT
- REUSE_ALV_BLOCK_LIST_APPEND
- REUSE_ALV_BLOCK_LIST_DISPLAY
REUSE_ALV_BLOCK_LIST_INIT
Este módulo de función se utiliza para establecer el estado predeterminado de la interfaz gráfica de
usuario, etc. Los parámetros son similares al utilizado en reuse_alv_list_display o reuse_alv_grid_display REUSE_ALV_BLOCK_LIST_APPEND
Este módulo de función añade los datos al bloque.
Parámetros importantes
1.Exportar:
- is_layout: configuración de diseño para el bloque
- it_fieldcat: catálogo de campos
- I_tabname: nombre de la tabla interna con todos los eventos posibles
2. Tablas:
- t_outtab: tabla interna con datos de salida.
REUSE_ALV_BLOCK_LIST_DISPLAY
Este módulo de función muestra la lista con los datos añadidos por la función anterior.
Parámetros: Todos los parámetros son opcionales.
Informes jerárquicos
La visualización jerárquica se utiliza para mostrar datos relacionados. Como detalles de la orden de venta y del artículo. Aquí los detalles del pedido de cliente pueden ser los datos del encabezado, mientras que los artículos del pedido de cliente pueden ser los datos del artículo.
El módulo de función utilizado para esto es
REUSE_ALV_HIERSEQ_LIST_DISPLAY
Exportar:
- I_CALLBACK_PROGRAM
- I_CALLBACK_PF_STATUS_SET
- I_CALLBACK_USER_COMMAND
- IS_LAYOUT
- It_fieldcat
- It_events
- I_tabname_header: Nombre de la tabla interna del programa que contiene los datos de salida del nivel jerárquico más alto.
- I_tabname_item: Nombre de la tabla interna del programa que contiene los datos de salida del nivel jerárquico más bajo.
- Is_keyinfo: esta estructura contiene el encabezado y los nombres de los campos de la tabla de elementos que vinculan las dos tablas (clave compartida).
Mesas
- t_outtab_header: tabla de encabezado con datos para la salida
- t_outtab_item: Nombre de la tabla interna del programa que contiene los datos de salida del nivel jerárquico más bajo.
Todas las definiciones de tablas internas, estructuras y constantes se declaran en un grupo de tipos llamado SLIS. Esta tabla interna se puede completar automáticamente usando REUSE_ALV_FIELDCATALOG_MERGE '.
Variantes de visualización
- Las variantes de visualización se utilizan para establecer las propiedades predeterminadas de una salida alv como criterios de clasificación, criterios de filtrado, totalización y subtotal, etc.
- Las variantes de visualización pueden ser estándar y específicas del usuario (cualquier usuario puede utilizar las variantes estándar)
- El tipo de variantes de visualización que se pueden guardar se controla mediante el parámetro i_save que se pasa en los módulos de función reuse_alv_list_display / reuse_alv_grid_display
- Puede proporcionar una opción en la pantalla de selección para seleccionar qué variante de visualización se utilizará
Los módulos de función comunes relacionados con la selección / validación de variantes de visualización son
- Reuse_alv_variant_default_get
- Reuse_alv_variant_f4
- Reuse_alv_variant_existence
¡Eso es todo por la programación ABAP-ALV!