✒️ABAP Los reportes ALV
ABAP Los reportes ALV
Resumen
Unidad 5 lección 5
Los Reportes Alv
1- Que es un ALV?
Es una tool exclusiva de Abap, q se utiliza xa crear reportes de manera eficaz, rapida y estandarizada
AVL => ABAP list Viewer (Visor de listas de Abap)
Las pples ventajas:
- simplifican el desarrollo de reportes, x lo tanto resuelve tiempos de prog.
- Proporcionan a los reportes muchas funcionalidades estándar, entre las funciones integradas xa manipular los resultados encontramos opciones como: = la clasificación = obtener totales = aplicar filtros = El ordenamiento x columnas o la posibilidad de ocultar columnas y tambien la funcionalidad xa los resultados a Microsoft excel, a un fichero local, archivos csv, en formato Html, entre otros.
- Proporcionan una salida x pantalla estandarizada e informe
veamos a continuación un ej: reporte ALV
= Titulo = "XXXXXXXXX"
= Funcionalidades genéricas ( imprirmir, generar archivo plano, filtro, ordenamiento, entre otros)
2- La historia de los reportes ALV.
xa aprender de donde venimos y hacia donde vamos en lo q respecta a los reportes ALV, vemos la historia.
== La lista Abap ==> La sentencia WRITE => datos en cuadricula. Los campos debían colocarse en posiciones estáticas especificas mientras se procesan los datos en un bucle o ciclo. = estructura rígida = xa modificar x prog. = al realizar los cambios => resulta inconveniente y requiere mucho tiempo.
== ALV lista: Luego llego el framework ALV => fue la implementación ALV list con respecto al anterior = columnas bien alineados. = Barra de tools con funcionalidades = como clasificación el filtrado y subtotales. = Los usuarios eligian las columnas q querían ver y en q orden. = Las preferencias se pueden guardar en un diseño y volver a ejecutar en una próxima ocasión. = La tecnología ALV orecio un conjunto unificado de tools xa la presentación de datos, sin tener q calcular la posicion de la pantalla de c/columna y escribir todo el código manual/. Al utilizar los ALV => los desarrolladores preparaban los datos comerciales y el ALV se encargan de la presentación.
== ALV GRILLA: El cual es un formato tabular o similar a microsoft excel y q se utiliza hasta el dia de hoy junto con el ALV Grilla también se incorpora al ALV jerárquico, el cual se utiliza solo en los casos donde se muestra datos de cabecera y de detalle.
== El primer Framework ALV orientada a objetos: El sgnte paso dentro del framework ALV vino de la mano de la introducción estratégica de la programación ABAP orientada a objeto en SAP ERP, versión 4.6C. -Aquí se utilizan clase de objetos q comienza con CL_GUI_ALV. en lugar de modulo de funciones visual/ la implementación basada en clases produce resultados muy similares a la implementación de módulos de funciones, xo una diferencia notable fue q permitió q un objeto ALV se vincule a un contenedor personalizado en una pantalla. esto hizo posible presentar no solo un reporte a pantalla completa, sino varios contenedores ALV en la misma pantalla.
== El Framework SALV: la implementación actual de framework ALV se llama SALV => a partir de SAP Netweaver 7.0. Este Framework lo proporcionan clases de objetos con nombre q comienzan con CL_SALV y admite, los formatos de tabla ALV, árbol ALV y lista secuencial jerárquico.
== ALV con IDA: una variedad + reciente del Framework => denominada SAP List Viewer with Integrated Data Access (ALV con IDA) a provecha la funcionalidad de la DB en memoria SAP HANA. xa realizar esta implementación se utiliza la clase de objetos CL_SALV_TABLE_IDA.
==> Actual/ si deseamos crear un reporte podemos utilizar cualquiera de las opciones q describimos anterior/.
La sentencia ABAP => con sentencia WRITE tiene complicaciones y limitaciones => xo se utiliza en algunos casos.
Respecto de los reportes ALV podemos utilizar las opciones anteriores como:
Reporte AlV => modulos de funciones REUSE_ALV
=> La orientacion a objetos con las clases CL_GUI_ALV
o la orientacion a objetos con las clases CL_SALV.
Solo si disponemos de SAP HANA como DB => implementar con los ALV_IDA.
3- La creación de un ALV mediante módulos de funciones.
tal como vimos anterior/ podemos crear un reporte ALV utilizando módulos de funciones y los + utilizados son tres:
- GRILLAS
- LISTAS
- JERÁRQUICO
Las Grillas y las Listas se pueden utilizar en cualquier reporte, xo el jerárquico se utiliza solo en los casos donde se muestran datos de cabecera y de detalle, como x Ej: los números de facturas y los detalle o las aerolíneas y los vuelos.
Xa las Grillas utilizamos el módulo de funciones => REUSE_ALV_GRID_DISPLAY.
Xa las Listas utilizamos el módulo de funciones => REUSE_ALV_LIST_DISPLAY.
Xa el jerárquico utilizamos el módulo de funciones => REUSE_ALV_HIERSEQ_LIST_DISPLAY
4- Mi primer reporte ALV
Utilizamos el módulo de funciones REUSE_ALV y los pasos son:
Paso 1: Las declaraciones de tipos, estructuras y tablas internas propias ALV, aquí declaramos el tipo SLIS => necesario xa ALV
REPORT zreporte_alv
TYPE-POOLS: slis.
CONSTANTS: c_x(1) TYPE c VALUE 'X'.
DATA: ti_usuaros TYPE STANDARD TABLE OF ztabla_usuarios,.....
wa_usuarios LIKE LINE OF ti_usuarios,
" tabla interna y esctructura de catalogo
ti_catalogo TYPE slis_t_fieldcat_alv,
wa_catalogo TYPE slis_fieldcat_alv,
" estructura xa la configuracion de la salida
wa_layout TYPE slis_layout_alv,
" variable con el nombre del prog
v_repid LIKE sy-repid.
También declaramos una tabla interna y una estructura xa el catalogo alv q son de tipo SLIS_T_FIELDCAT_ALV y SLIS_FIELDCAT_ALV, otra estructura xa la configuracion de la salida q es el tipo SLIS_LAYOUT_ALV y una variable del tipo sy-repid, xa almacenar el nombre del prog.
Paso 2: La declaración de la tabla interna de salida del ALV.
vamos a declarar la tabla interna de salida TI_USUARIOS q se mostrará en el ALV.
" tabla interna y estructura de salida del ALV
DATA: ti_usuarios TYPE STANDARD TABLE OF ztabla_usuarios,
wa_usuarios LIKE LINE OF ti_usuarios.
Paso 3: La selección de los datos q se mostrarán en el ALV.
Dentro del evento START-OF-SELECTION vamos a crear la subrutina SELECCIONAR_DATOS
En esta subrutina se seleccionan los datos de la DB ztabla_usuarios q mostraremos en el listado de salida y los almacena en la tabla interna ti_usuarios.
Paso 4: El armado del catalogo ALV.
También dentro del eventos START-OF-SELECTION vamos a crea rla subrutina ARMAR_CATALOGO en donde armamos el catalogo de ALV con los campos q seran las colmnas del reporte.
Xa ello completamos xa c/columna del listado, los sgntes campso pertenecientes a la tabla interna del catalogo.
subrutina
FORM armar_catalogo.
REFRESH ti_catalogo.
CLEAR w_catalogo.
wa_catalgo-fieldname = 'DNI' "nombre del campo
wa_catalgo-tabname = 'TI_USUARIOS' "nombre tabla
wa_catalgo-seltext_s = 'DNI' "descripcion corta cabecera
wa_catalgo-seltext_m = 'DNI' "descripcion media cabecera
wa_catalgo-seltext_l = 'DNI' "descripcion larga cabecera
wa_catalgo-outputlen = 10 "ancho de la columna
wa_catalgo-just = 'R' "alineacion
APPEN wa_catalogo TO ti_catalogo.
CLEAR wa_catalogo.
wa_catalgo-fieldname = 'NOMBRE_APE'
wa_catalgo-tabname = 'TI_USUARIOS'
wa_catalgo-seltext_s = 'Nombre y apellido'
wa_catalgo-seltext_m = 'Nombre y apellido'
wa_catalgo-seltext_l = 'Nombre y apellido'
wa_catalgo-outputlen = 25.
wa_catalgo-just = 'R'
APPEN wa_catalogo TO ti_catalogo.
Existen muchísimos mas propiedades del catalogo q se pueden configurar segun lo q necesitamos mostrar en el listado.
xa + info debemos hacemos hacer doble clic en el tipo SLIS_T_FIELDCAT_ALV
Paso 5: La configuración de la salida del ALV.
También dentro del evento START-OF-SELECTION vamos a crear la subrutina CONFIGURAR_LAYOUT. en donde configuramos ciertos aspecto de la salida del ALV.
Vamos a completar con valorees la estructura WA_LAYOUT tal como vemo en la sngete imagen:
FORM configurar_layout.
CLEAR wa_layout.
wa_layout-windows_titlebar = text-001. "reporte de usuarios
ENDFORM.
=> Existen muchas + opciones xa configurar en el layout de un reporte ALV hacer doble clic en el tipo SLIS_LAYOUT_ALV.
Paso 6: La ejecución del modulo de funciones de ALV.
nos qda ejecuta el modulo de funciones si queremos un reporte tipo Grilla => modulo de funciones REUSE_ALV_GRID_DISPLAY si queremos un reporte tipo lita => REUSE_ALV_LIST_DISPLAY ambos módulos de funciones se completan de la misma manera. como se menciono anterior/ los ALV jerárquicos se utilizan xa cuando tenemos q mostrar datos de cabecera y detalle, x lo tanto no es aplicable xa este ej.
También dentro del evento START-OF-SELECTION. vamos a crear la subrutina EJECUTAR_ALV.
si es Grilla ejecutaremos el modulo de funciones REUSE_ALV_GRIP_DISPLAY.
FORM ejecutar_alv.
CLEAR v_repid.
v_repid = sy-repid.
IF p_grilla EQ c_x.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = v_repid
it_fieldcat = ti_catalogo[]
is_layout = wa_layout
TABLES
t_outtab = ti_usarios.
ELSEIF p_lista EQ c_x.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = v_repid
it_fieldcat = ti_catalogo[]
is_layout = wa_layout
TABLES
t_outtab = ti_usuarios.
ENDIF.
Paralelo
ALV GRID
ALV GRID | ALV LIST |
- Permite la generación de un encabezado en la parte superior del listado en el cual podemos colocar un logo con totales y subtotales | - no es posible |
- En la ALV GRID es + bonito visual/ y permite copiar y pegar columnas donde queramos | - Genera un lista de visualización utilizando la sentencia WRITE esto le da la misma apariencia de los reportes clásicos. No es posible copiar y pegar columnas y pegar donde quiera |
- El ALV GRID no es posible correrlo de fondo x lo q el modo REUSE ALV GRID traduce automatica/ la salida en pantalla al ALV LIST | - Se puede correr de fondo |
- El ALV GRID utiliza controles active X en el servidor de presentación x lo q consume + memoria en el servidor q el ALV LIST | - No consume tanta memoria |
En cambio en ALV GRID podemos editar los registros o los campos si asi lo deseamos | - ALV LIST permite solo visualización de los datos |
 
 
 
Sobre el autor
Publicación académica de Gustavo Betancur Guzmán, en su ámbito de estudios para la Carrera Consultor ABAP.
Gustavo Betancur Guzmán
Profesión: Ingeniero de Sistemas - Colombia - Legajo: WS86O
✒️Autor de: 164 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP MM Nivel Avanzado
- Carrera Consultor en SAP MM Nivel Inicial