✒️ABAP Los reportes ALV
ABAP Los reportes ALV
REPORTES ALV: GRILLAS Y LISTAS
QUE ES UN ALV?
NOTA: ALV (ABAP LIST VIEWER): Es una herramienta exclusiva de ABAP, se utiliza para crear reportes de manera eficaz, rápida y estandarizada.
Ventajas:
Simplifican el desarrollo de reportes, por lo tanto se reducen los tiempos de programación.
Proporcionan a nuestros reportes un montón de funcionalidades estandar.
Proporcionan una salida por pantalla estandarizada y uniforme.
La creación de un reporte ALV, se basa en la utilización de funciones. Los tipos de ALV más comúnmente usados son tres: grillas, listas y jerárquico.
Las grillas y las listas pueden usarse en cualquier reporte, pero el jerarquico se utiliza solo en los casos donde se muestran datos de cabecera y de detalle, por ejemplo: como numero de factura y detalle o Aerolineas y vuelos.
A cada tipo de ALV le corresponde una función diferente. Ellas son:
Grillas: REUSE ALV GRID DISPLAY.
Listas: REUSE ALV LIST DISPLAY.
Jerarquico: REUSE ALV HIERSEQ LIST DISPLAY.
AUDIO: Dado que los reportes ALV requieren de la Interacción del Usuario con el reporte ya que proporcionan muchísimas utilidades estándar que el usuario del reporte puede utilizar sin necesidad de ser programadas entonces no tiene sentido el uso de reportes ALV en procesos que se ejecutaran de fondo, ya que este tipo de reportes requiere de la interacción del usuario con el reporte. Este punto es importante tenerlo en cuenta en el diseño técnico del reporte.
MI PRIMER REPORTE ALV:
PASO 1. Declaración de tipos, estructuras y tablas propias del ALV: dentro de este paso, declaramos el tipo SLIS, necesario en la utilización de reportes ALV.
TYPE-POOLS: slis.
NOTA: SLIS: Grupo de tipos que contiene la declaración de todas las estructuras y tablas estándar necesarias para la creación de un reporte ALV.
También declaramos una tabla y una estructura para el catálogo del ALV que son del tipo SLIS_T_FIELDCAT_ALV y SLIS_FIELDCAT_ALV, otra estructura para la configuración de la salida que es del tipo SLIS_LAYOUT_ALV y una variable de tipo SY-REPID para almacenar el nombre del programa.
* Tabla y estructura del catalogo
DATA: ti_catalogo TYPE slis_t_fieldcat_alv,
st_catalogo TYPE slis_fieldcat_alv,
* Estructura para la configuración de la salida
st_layout TYPE slis_layout_alv,
* Variable con el nombre del programa
v_repid LIKE sy-repid.
PASO 2. Declaración de la tabla de salida del ALV: declarar la tabla de salida (tabla interna) que se mostrará en el ALV.
* Tabla de salida del ALV
DATA: ti_usuarios TYPE STANDARD TABLE OF ztabla_usuarios,
st_usuarios LIKE LINE OF ti_usuarios.
PASO 3. Selección de los datos que se mostraran en el ALV: ahora seleccionamos los datos de la tabla ZTABLA_USUARIOS que mostraremos en el listado de salida y lo guardamos en la tabla interna TI_USUARIOS.
CLEAR ti_usuarios.
REFRESH ti_usuarios.
SELECT dni nombre_ape estado_usu direccion codigo_postal
f_nacimiento estado_civil
FROM ztabla_usuarios
INTO CORRESPONDING FIELDS OF TABLE ti_usuarios.
PASO 4. Armado del catálogo ALV: armamos el catálogo ALV con los campos que serán las columnas de nuestro reporte. Para ello, completaremos para cada columna del listado, los campos pertenecientes a la tabla del catálogo. Asi:
CLEAR st_catalogo.
st_catalogo-fieldname = 'DNI'. "Nombre del campo
st_catalogo-tabname = 'TI_USUARIOS'. "Nombre Tabla
st_catalogo-seltext_s = 'DNI'. "Descripción corta Cabecera
st_catalogo-seltext_m = 'DNI'. "Descripción media Cabecera
st_catalogo-seltext_l = 'DNI'. "Descripción larga Cabecera
st_catalogo-outputlen = 10. "Ancho de la columna
st_catalogo-just = 'R'. "Alineación
APPEND st_catalogo TO ti_catalogo.
CLEAR st_catalogo.
st_catalogo-fieldname = 'NOMBRE_APE'.
st_catalogo-tabname = 'TI_USUARIOS'.
st_catalogo-seltext_s = 'Nombre y Apellido'.
st_catalogo-seltext_m = 'Nombre y Apellido'.
st_catalogo-seltext_l = 'Nombre y Apellido'.
st_catalogo-outputlen = 25.
st_catalogo-just = 'R'.
APPEND st_catalogo TO ti_catalogo.
NOTA: Existen muchísimas más propiedades del catálogo que se pueden configurar según lo que necesitemos mostrar en el listado. Para más información doble click en el tipo SLIS_T_FIELDCAT_ALV.
PASO 5. Configuración de la salida del ALV: vamos a cargar la estructura ST_LAYOUT para configurar ciertos aspectos de la salida del ALV.
CLEAR st_layout.
st_layout-zebra = ‘X’. " Rayado de lineas.
st_layout-window_titlebar = text-001. " Titulo Ventana Principal.
NOTA: Existen muchas mas opciones a configurar en el layout de un reporte ALV. Para mas informacion doble click en el tipo SLIS_LAYOUT_ALV.
PASO 6. Ejecución de la función ALV: como último paso que nos queda es ejecutar la función del ALV, si deseamos un reporte tipo grilla, ejecutaremos la función REUSE_ALV_GRID_DISPLAY. Si queremos un reporte tipo lista, ejecutaremos la función REUSE_ALV_LIST_DISPLAY.
Ambas funciones se completan de la misma manera, los ALV jerárquicos se usan para cuando tenemos que mostrar datos de cabecera y detalle. Para este ejemplo no es aplicable.
Si es GRILLA:
v_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = v_repid
it_fieldcat = ti_catalogo[]
is_layout = st_layout
TABLES
t_outtab = ti_usuarios.
Si es LISTA:
v_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = v_repid
it_fieldcat = ti_catalogo[]
is_layout = st_layout
TABLES
t_outtab = ti_usuarios.
AUDIO: Debemos tener en cuenta que por convención de ABAP colocaremos siempre a la derecha de la tabla interna del catálogo tanto en la función que genera la grilla como la que genera la lista una llave abierta y una llave cerrada.
Finalmente al ejecutar el reporte veremos, si es para GRILLAS:
Si es para LISTA:
NOTA: La principal diferencia entre el ALV grilla y el ALV lista se encuentra en la visualización, la cual es bastante diferente.
A su vez el ALV GRID permite la generación de un encabezado en la parte superior del listado en el cual podemos colocar un logo con totales y subtotales, lo que no es posible con ALV LIST.
El ALV LIST genera una lista de visualización usando la sentencia ARRAY, esto le da la misma apariencia o LOOK AND FELL de los llamados reportes clásicos.
El ALV GRID es más bonito y permite copiar y pegar columnas en donde queramos lo que no es posible con ALV LIST.
El ALV GRID no se puede ejecutar de fondo, por lo que el modulo de funciones REUSE_ALV traducirá automáticamente la salida en pantalla a ALV LIST, si ejecutamos el reporte de fondo.
El ALV GRID utiliza controles ACTIVEX en el servidor de presentación por lo que consume más memoria en el servidor que el ALV LIST.
El ALV LIST permite solo la visualización de los datos, en cambio con el ALV GRID podemos editar los registros y los campos si así lo deseamos.
 
 
 
Sobre el autor
Publicación académica de Alexander Castellanos, en su ámbito de estudios para la Carrera Consultor ABAP.
Alexander Castellanos
Profesión: Ingeniero de Sistemas - Colombia - Legajo: JS42A
✒️Autor de: 67 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Alexander Castellanos