Informes ALV en SAP Tutorial – Visor de listas ABAP

Las características comunes deseadas de cualquier informe son "alineación de columnas", clasificación, filtrado, subtotales, totales, etc. Para implementarlas desde cero, se debe realizar un gran esfuerzo de codificación. Para evitarlo podemos utilizar un concepto llamado ABAP List Viewer (ALV).

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

Módulos de funciones importantes en estos (reporte) son -

  • Reuse_alv_fieldcatalog_merge
  • Reutilizar_alv_list_display
  • Reutilizar_alv_events_get
  • Reutilizar_alv_grid_display
  • Reutilizar_alv_commentary_write

REUSE_ALV_FIELDCATALOG_MERGE

Este módulo de funciones se utiliza para completar un catálogo de campos que es esencial para mostrar los datos en ALV.

Si los datos de salida provienen de una única tabla de diccionario y todas las columnas están seleccionadas, entonces no necesitamos crear 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: El catálogo de campos también se puede completar manualmente completando todos los detalles requeridos en la tabla interna.

Los parámetros importantes son:

1. Exportación:

  • I_program_name: identificación del informe
  • I_internal_tabname: la tabla de salida interna
  • I_inclname: incluye el nombre del informe donde se manejan todos los formularios dinámicos.

2. Cambio

  • ct_fieldcat: un mesa 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. Exportación:

  • I_callback_program: identificación del informe
  • I_bypassing_buffer : 'X'
  • I_buffer_activo : ' '
  • 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 completada automáticamente por la función)
  • It_events: tabla interna con una lista de todos los eventos posibles de ALV y sus correspondientes nombres de formulario.

2. Tablas:

  • a. t_outtab: tabla interna con los datos a generar

REUSE_ALV_EVENTS_GET:

Devuelve una tabla de posibles eventos para un tipo de lista

1. Importación:

Et_Eventos:La tabla de eventos se devuelve con todos los eventos CALLBACK posibles para el tipo de lista especificado (columna 'NOMBRE'). Para que la devolución de llamada procese los eventos, se debe completar su campo 'FORMULARIO'. Si el campo se inicializa, el evento se ignora. La entrada se puede leer en la tabla de eventos, llenar el campo 'FORMULARIO' y modificar la entrada utilizando constantes del grupo de tipos SLIS.

2. Exportación:

I_list_type: 0 = lista simple REUSE_ALV_LIST_DISPLAY

1 = lista jerárquica-secuencial REUSE_ALV_HIERSEQ_LIST_DISPLAY

2 = lista de bloqueo simple REUSE_ALV_BLOCK_LIST_APPEND

3 = lista de bloques secuencial jerárquica REUSE_ALV_BLOCK_LIST_HS_APPEND

REUSE_ALV_GRID_DISPLAY

Una nueva función de la versión ABAP4.6, para mostrar los resultados en una cuadrícula en lugar de una vista previa.

Parámetros: igual que reuse_alv_list_display

Nota: Grid no puede manejar volúmenes altos. Funciones como ordenar y desplazarse hacia abajo consumen muchos recursos/tiempo si el volumen de datos que se mostrarán es alto. No existe una definición clara de que si la cantidad de datos es X, elija una lista o una cuadrícula, pero el desarrollador debe atender una llamada según su experiencia. Si no está seguro, entonces la lista es la mejor opción.

REUSE_ALV_COMMENTARY_WRITE

Esto se utiliza en el evento de inicio de página 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:

  1. Tipo: 'H' - encabezado, 'S' - selección, 'A' - acción
  2. Clave: solo cuando el tipo es 'S'.
  3. Información: el texto a imprimir

Informe de bloque

Parece un informe simple, pero tiene las funciones de ordenar y filtrar únicamente. 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, entonces optamos por el informe de bloque de ALV.

Las funciones importantes utilizadas 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 de la interfaz gráfica de usuario predeterminado, 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 agrega 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 agregados 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 los detalles de los pedidos de venta y los artículos. En este caso, los detalles de los pedidos de venta pueden ser los datos del encabezado, mientras que los artículos del pedido de venta pueden ser los datos del artículo.

El módulo de funciones 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
  • es_eventos
  • I_tabname_header: Nombre de la tabla interna en el programa que contiene los datos de salida del nivel jerárquico más alto.
  • I_tabname_item: Nombre de la tabla interna en el programa que contiene los datos de salida del nivel jerárquico más bajo.
  • Is_keyinfo: esta estructura contiene los nombres de los campos de la tabla de elementos y encabezado que vinculan las dos tablas (clave compartida).

Mesas

  • t_outtab_header: tabla de encabezado con los datos que se generarán
  • t_outtab_item: Nombre de la tabla interna en el 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 subtotalización, etc.
  • Las variantes de visualización pueden ser específicas del usuario y estándar (cualquier usuario puede utilizar las variantes estándar)
  • El tipo de variantes de visualización que se pueden guardar está controlado por 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 funciones comunes relacionados con la selección/validación de variantes de visualización son

  1. Reuse_alv_variant_default_get
  2. Reutilizar_alv_variant_f4
  3. Reutilizar_alv_variant_existencia

Eso es todo para ABAP – ¡Programación ALV!