✒️ABAP Las funcionalidades estándar del ALV
ABAP Las funcionalidades estándar del ALV
QUE ES UN REPORTE INTERACTIVO
Es un reporte ABAP, donde se muestra un primer listado por pantalla y luego haciendo doble clic a una línea determinada del primer listado, se accede a otros datos relativos a esa línea y así sucesivamente por cuantos niveles tenga el listado.
Este tipo de reportes solo puede ser ejecutado Online ya que requiere interacción con el usuario.
La principal ventaja de los reportes interactivos es que con pocas líneas de código se puede crear un reporte con interacción con el usuario, a diferencia de los programas de diálogo, que requieren mas tiempo de construcción.
Ejemplo.
Tenemos un primer listado que muestra los usuarios con sus nombres y luego al hacer doble clic sobre un usuario en particular, vemos datos detallados del usuario, como pueden ser el país, código postal, región, etc.
2. EVENTOS Y VARIBALES DE UN REPORTE INTERACTIVO
Cuando hacemos clic en alguna posición de la lista principal que se muestra por pantalla, se ejecutará el evento AT LINE-SELECTION. Este evento debemos ubicarlo luego del evento START-OF-SELECTION. En este momento, ciertas variables del sistema se completan con información muy util.
- SY-SLIND: contiene el indice de la lista de detalle. Número de la fila clickeada
- SY-LISEL: Tendrá el contenido de la línea.
- SY-LILLI: Contiene la línea seleccionada de la lista comenzando desde la primera línea que corresponde al título.
- SY-CUROW: Contiene la posición del cursor vertical
Utilizaremos el evento TOP-OF-PAGE DURING LINE-SELECTION para imprimir por pantalla los textos de las cabeceras de las listas de detalle.
Existen algunos programas de prueba estándar ABAP para practicar.
DEMO_LIST_INTERACTIVE_1
DEMO_LIST_INTERACTIVE_2
DEMO_LIST_INTERACTIVE_3
DEMO_LIST_INTERACTIVE_4.
QUE ES UN ALV
Herramienta exclusiva de ABAP, que se utiliza para crear reportes de manera eficaz, rápida y estandarizada.
Principales Ventajas:
- Simplificar el desarrollo de reportes, se reducen los tiempos de programación
- Proporcionan a nuestros reportes un montón de funcionalidad estándar
- Proporcionan un salida por pantalla estandarizada e uniforme
La creación de estos reportes, se basa en la utilización de funciones. Los tipos de ALV más comunmente usados son tres: Grillas, Listas y Jerárquico.
Las grillas y las listas pueden utilizarse en cualquier reporte, pero el jerárquico se utiliza sólo en los casos donde se muestran datos de cabecera y de detalle, como por ejemplo números de factura y detalles o Aerolíneas 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
Jerárquico. REUSE_ALV_HIERSEQ_LIST_DISPLAY
MI PRIMER REPORTE ALV
Paso 1. Declaraciones de tipos, estructuras y tablas propias del ALV.
Dentro de este paso, declaramos el tipo SLIS, que es necesario para la utilización de reportes ALV.
TYPE-POOLS: slis.
También declaramos una tabla y una estructura para el catálogo del ALV que son del tipo SLIS_T_FIELDCAT_ALV y SILIS_FIELDCAT_ALV, otra estructura para la configuración de la salida que es del tipo SLIS_LOYAUT_ALV y una variable del 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
Vamos a declarar la tabla de salida TI_USUARIOS 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 mostrarán en el ALV.
Ahora seleccionamos los datos de la tabla ZTABLA_USUARIOS, que mostraremos en el listado de salida y los guardamos en la tabla interna 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 del ALV
Armamos el catálogo del ALV con los campos que serán las columnas de nuestro reporte. para ellos, completaremos para cada columna del listado, los siguiente campos pertenecientes a la tabla del catálogo.
CLEAR st_catalogo.
st_catalogo-fieldname = 'DNI'.
st_catalogo-tabname = 'TI_USUARIOS'.
st_catalogo-seltext_s = 'DNI' "Descripción corta cabecera
st_catalogo_seltext_m = 'DNI' "Descripción media de cabecera
st_catalogo-seltext_l = 'DNI'. "Descripción larga de cabecera
st_catalogo-outputlen = 15. "Ancho de la columna
st_catalogo-just ='L'. "Alineación
APPEND st_catalogo TO ti_catalogo.
Para averiguar mas propiedades del catálogo que se pueden configurar hacer doble clic en el tipo SLIS_T_FIELDCAT_ALV.
Paso 5. Configuración de la salida del ALV
Vamos a cargar con valores 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.
Para mas información de opciones a configurar en el layout de un ALV hacer doble clic SLIS_LAYOUT_ALV.
Paso 6: Ejecución de la función del ALV
Por último ejecutamos la función ALV. Si queremos 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 de completan de la misma manera.
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.
Por convención de ABAP colocamos siempre a la derecha de la tabla interna del catalogo, tanto en la función de la grilla o la lista los corchetes.
Principales Diferencias entre ALV Grillas y Listas.
Las Grillas:
- Permite la generación de un encabezado en la parte superior del listado, podemos colocar un logo con totales y subtotales.
- Mas bonito, permiten copiar y pegar filas y columnas en cualquier parte.
- No se puede ejecutar de fondo.
- Consume mas memoria en el servidor por , usa controles Activex.
- Permite modificar los datos.
Las listas:
- Las listas se orientan a mostrarse como los reportes clásicos.
- Permiten solo la visualización de los datos.
FUNCIONALIDADES ESTANDAR DE LOS REPORTES ALV
Dentro de las funcionalidades de los ALV podemos:
Ordenar en orden asc o desc.
Podemos visualizar los detalles de la filas seleccionada.
Podemos aplicar filtros.
Previsualizador de impresión.
Exportar a excel.
Exportar a word.
Exportar a cualquier formato de archivo local.
Enviar por mail por medio de SAP.
Generar gráficos con los valores que se muestran en el reporte.
Cambiar la disposición general del reporte.
A partir del reporte ALV emitido puede cambiar el orden de las columnas, ocultar, mostrar, aplicar totales o subtotales, guardando estas configuraciones como un layout.
La configuración que le demos al reporte se puede guardar como layout. Estos son dependientes de mandante, por lo que pueden ser transportados entre distintos ambientes de SAP.
Para importar uno o varios loyauts, se puede ejecutar el reporte estandar RKKBALVI o usar la función de manejo de layouts disponible en el menú de SAP.
 
 
 
Sobre el autor
Publicación académica de Walter Giovanny Montoya García, en su ámbito de estudios para la Carrera Consultor ABAP.
Walter Giovanny Montoya García
Profesión: Administrador de Sistemas Informáticos - Colombia - Legajo: UX58H
✒️Autor de: 55 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
🎓Egresado de los módulos:
Certificación Académica de Walter Montoya