ALV Report de una tabla interna

0

Los reportes son una parte fundamental en el desarrollo de aplicaciones SAP, ya que permiten visualizar de manera organizada y estructurada la información almacenada en las bases de datos. Uno de los métodos comunes para generar y mostrar estos reportes es mediante el uso de ALV Reports (Listas de Visualización de Aplicaciones), una herramienta poderosa que facilita la presentación de datos en forma de tablas interactivas.


En SAP ABAP, los ALV Reports se construyen utilizando un conjunto de funciones y clases proporcionadas por el framework de desarrollo de SAP. Estas funciones y clases permiten definir la estructura de la tabla a mostrar, así como también manipular y presentar los datos de manera eficiente.


Para crear un ALV Report, primero necesitamos definir una tabla interna que contendrá los datos que queremos mostrar en la tabla. En este ejemplo, llamaremos a nuestra tabla interna it_fieldcat, pero este nombre puede variar según las necesidades y convenciones de programación del proyecto en cuestión.


En la tabla interna it_fieldcat, especificamos los nombres de los campos que queremos mostrar en la tabla de salida, así como también una descripción para cada campo que se utilizará como título de columna en la presentación.


Tomemos como ejemplo la tabla estándar de SAP SFLIGHT, que contiene información sobre vuelos. Supongamos que queremos mostrar los primeros cuatro campos de esta tabla en nuestro ALV Report. Para lograrlo, primero debemos definir la estructura de nuestra tabla interna it_fieldcat.



En este código, hemos definido una estructura estándar de tipo slis_fieldcat_alv que contiene dos campos: fieldname para el nombre del campo y description para la descripción del campo que se mostrará como título de columna. Luego, creamos una tabla interna g_it_fieldcat basada en esta estructura. Respetamos, ese formato pues es el nombre que nos pide la función


A continuación, debemos llenar esta tabla interna con la información de los campos que queremos mostrar:



Una vez que hemos definido y poblado nuestra tabla interna it_fieldcat, podemos utilizarla para generar nuestro ALV Report. Esto implica llamar a las funciones y clases adecuadas del framework ALV de SAP para configurar y mostrar la tabla de salida. 



Dado este pequeño vistazo de como interactua la funcion ALV. Les dejo la plantilla para que puedan utilizarla, solo varíen según las necesidades que tengan.

REPORT zalv_ejemplo.

* CARGAMOS LA TABLA QUE VAMOS A USAR DE BASE DE DATOS
TABLES: sflight.

* CARGAMOS LOS DATOS TIPO SLIS
TYPES: slis.

* DEFINIMOS LAS VARIABLES
DATA: g_it_sflight TYPE TABLE OF sflight,
      g_st_sflight TYPE sflight.

DATA: g_it_fieldcat TYPE slis_t_fieldcat_alv,
      g_st_fieldcat TYPE slis_fieldcat_alv.

* EN ESTA SECCION HACEMOS LA CONSULTA A LA BASE DE DATOS
SELECT * FROM sflight INTO TABLE g_it_sflight.

* DATOS DEL FIELDCAT PARA EL ALV
g_st_fieldcat-fieldname = 'CARRID'.   "NOMBRE DEL CAMPO DE LA TABLA
g_st_fieldcat-seltext_m = 'Compañía'. "DESCRIPCION MEDIA
g_st_fieldcat-seltext_s = 'Comp.'.    "DESCRIPCION CORTA
APPEND g_st_fieldcat TO g_it_fieldcat.

g_st_fieldcat-fieldname = 'CONNID'.
g_st_fieldcat-seltext_m = 'Nº vuelo'.
g_st_fieldcat-seltext_s = 'Vuelo'.
APPEND g_st_fieldcat TO g_it_fieldcat.

g_st_fieldcat-fieldname = 'FLDATE'.
g_st_fieldcat-seltext_m = 'Fecha de vuelo'.
g_st_fieldcat-seltext_s = 'Fecha'.
APPEND g_st_fieldcat TO g_it_fieldcat.

g_st_fieldcat-fieldname = 'PRICE'.
g_st_fieldcat-seltext_m = 'Tarifa de vuelo'.
g_st_fieldcat-seltext_s = 'Tarifa'.
APPEND g_st_fieldcat TO g_it_fieldcat.

* Función ALV
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    it_fieldcat   = g_it_fieldcat[]
  TABLES
    t_outtab      = g_it_sflight[]
  EXCEPTIONS
    program_error = 1
    OTHERS        = 2.


En resumen, los ALV Reports son una herramienta esencial en el desarrollo de aplicaciones SAP que permiten presentar datos de manera clara y organizada. Al definir una tabla interna adecuada con la estructura y descripciones de los campos deseados, podemos generar reportes personalizados que satisfagan las necesidades específicas de los usuarios y las aplicaciones.


Tags

Publicar un comentario

0Comentarios
Publicar un comentario (0)