• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
Twitter Linkedin Instagram
S4PCADEMY_Logo
Twitter Linkedin Instagram
SAP ABAP

Información sobre ALV Reports en SAP: Tutoría y funcionamiento

By s4pcademy 



Las características deseadas comunes de cualquier informe son «alineación de columnas», ordenamiento, filtrado, subtotales, totales, etc. Para implementar estos desde cero, se debe poner mucho esfuerzo en codificación. Para evitar eso, podemos usar un concepto llamado Visualizador de Listas ABAP (ALV). Cada uno de estos informes proporciona módulos de función que ayudan a producir la salida deseada sin mucho esfuerzo. Veamos en detalle –

Informe simple

Los módulos de función importantes en estos informes 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 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 explícitamente el catálogo de campos. Es suficiente mencionar el nombre de la tabla como un parámetro (I_structure_name) en el REUSE_ALV_LIST_DISPLAY. Pero en otros casos, necesitamos crearlo.

Nota: El catálogo de campos también se puede llenar manualmente llenando todos los detalles necesarios en la tabla interna.

Parámetros importantes son:

  • Exportar: I_program_name: ID de 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
  • Cambiar ct_fieldcat: una tabla interna con el tipo SLIS_T_FIELDCAT_ALV que se declara en el tipo pool SLIS.

REUSE_ALV_LIST_DISPLAY

Este es el módulo de función que imprime los datos. Los parámetros importantes son:

  • Exportar: I_callback_program: ID de informe
  • I_bypassing_buffer: ‘X’
  • I_buffer_active: ‘ ‘
  • I_callback_pf_status_set: rutina donde un usuario puede establecer su propio estado de formulario o cambiar la funcionalidad del estado de formulario existente
  • I_callback_user_command: rutina donde se manejan los códigos de función
  • I_structure nombre: nombre de la tabla de 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 se puede llenar automáticamente con la función)
  • It_events: tabla interna con una lista de todos los posibles eventos de ALV y sus nombres de formulario correspondientes.
  • Tablas:
    • t_outtab: tabla interna con los datos a imprimir

REUSE_ALV_EVENTS_GET:

Devuelve una tabla de eventos posibles para un tipo de lista

  • Importar: Et_Events: La tabla de eventos se devuelve con todos los eventos CALLBACK posibles para el tipo de lista especificado (columna ‘NAME’).
  • Exportar: I_list_type: 0 = lista simple REUSE_ALV_LIST_DISPLAY 1 = lista jerárquica-secuencial REUSE_ALV_HIERSEQ_LIST_DISPLAY 2 = lista de bloques simple REUSE_ALV_BLOCK_LIST_APPEND 3 = lista de bloques jerárquica-secuencial 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: iguales que reuse_alv_list_display

Nota: La cuadrícula no puede manejar volúmenes altos. Funciones como ordenar, desplazarse hacia abajo consume muchos recursos / tiempo si el volumen de datos a mostrar es alto. No hay una definición clara de tal manera que si la cantidad de datos es X vaya a lista o cuadrícula, pero el desarrollador tiene que tomar una decisión basada en su experiencia. Si no está seguro, entonces la lista es la mejor opción.

REUSE_ALV_COMMENTARY_WRITE

Esto se usa en el evento Top-of-page para imprimir los encabezados y otros comentarios para la lista. Parámetros importantes

  • It_list_commentary: Tabla interna con los encabezados del tipo slis_t_listheader. Esta tabla interna tiene tres campos: Typ: ‘H’ – encabezado, ‘S’ – selección, ‘A’ – acción Key: solo cuando Typ es ‘S’ Info: el texto a imprimir

Informe de bloque

Este parece un informe simple pero este informe tiene las características de ordenar y filtrar solamente. Este informe se usa si tiene que mostrar más de un informe en la salida. Técnicamente hablando, si tiene múltiples tablas internas con datos que se van a mostrar como bloques separados, entonces vamos al 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 por defecto, etc. Los parámetros son similares a los utilizados 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

  • Exportar: is_layout: configuraciones de diseño para bloque it_fieldcat: catálogo de campos I_tabname: nombre de la tabla interna con todos los eventos posibles
  • 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 presentación jerárquica se utiliza para mostrar datos que están relacionados. Como detalles de la orden de venta y los detalles del artículo. Aquí los detalles de la orden de venta pueden ser los datos del encabezado mientras que los elementos en la orden de venta 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 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 campo de la tabla de encabezado y del artículo que vinculan las dos tablas (clave compartida). Tablas t_outtab_header: Tabla de encabezados con datos a imprimir 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 tipo-pool llamado SLIS. Esta tabla interna se puede llenar automáticamente utilizando 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 ordenamiento, criterios de filtrado, totalización y subtotalización, etc. Las variantes de visualización pueden ser específicas del usuario y estándar (las variantes estándar pueden ser utilizadas por cualquier usuario)

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 funciones 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 va a utilizar

Los módulos de funciones 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 para la programación ABAP – ALV!





SAP Tutorial: Infoobjects, Infoareas y Catálogo de Infoobjects
Previo
Validación de datos en Excel: ejemplos de filtros, agrupación y ordenamiento
Siguiente

Madrid

Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010

México

Paseo de la Reforma 26
Colonia Juárez,  Cuauhtémoc
Ciudad de México 06600

Costa Rica

Real Cariari
Autopista General Cañas, 
San José, SJ 40104

Perú

Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073

Twitter Linkedin Instagram
Copyright 2022 | All Right Reserved.