Plantilla para construir un ALV

NOTA: En este artículo, para una mejor visualización, preferí colocar imágenes de los códigos, si quieres copiártelos, podrás descargar la plantilla desde el siguiente enlace:

Plantilla ALV

Programa ZALV

Vamos a suponer que los datos que debemos mostrar en el reporte los guardamos en la tabla interna llamada ITAB [].

Lo primero que revisaremos, serán el conjunto de variables que requerimos declarar para manejar todo lo relacionado con el ALV.

Variables para un ALV

Variables para un ALV

Requerimos el Pool SLIS que contiene todas las estructuras del ALV a utilizar, utilizamos estructuras para los grupos de campos y el layout de salida; también declaramos la estructura que manejará la cabecera del reporte, y por supuesto, la tabla que contendrá el catálogo de campos.

Luego de tratar toda la información, y tener en ITAB la información final a mostrar, creamos un PERFORM para tratar el ALV de manera independiente y no “ensuciar” nuestro código principal.

Perform ALV

Dentro del FORM, crearemos los siguientes 4 PERFORMS

FORM ALV REPORT

FORM ALV REPORT

En el primer PERFORM, podremos crear grupos para juntar cierta cantidad de campos en un único conjunto, suele ser útil si disponemos de un conjunto de campos con características comunes.

En el segundo PERFORM, crearemos el catálogo de campos, esto es, especificaremos cada uno de los campos contenidos en el ALV con sus propiedades.

En el tercer PERFORM, indicaremos el LAYOUT de salida que queremos que tenga el ALV, podemos hacer bastante más cosas que pintar las filas de colores.

En el cuarto PERFORM, invocaremos al módulo de función que pinta el ALV en pantalla, asignándole los parámetros que vamos armando en los PERFORMS anteriores, junto con los datos a mostrar en la tabla interna ITAB.

Veamos ahora cada PERFORM por dentro.

FORM  SP_GROUP_BUILD para crear los grupos de campos.

Plantilla ALV - Grupos de Campos

Plantilla ALV – Grupos de Campos

Los parámetros que nos interesan son el nombre del grupo (letra) y su descripción.

FORM  ALV_INI_FIELDCAT para crear el catálogo de campos con sus propiedades.

Plantilla ALV - Crear Catalogo

Plantilla ALV – Crear Catalogo

El nombre del campo, su descripción, su longitud, su posición en el reporte, y su grupo, son parámetros comunes para cada campo; si queremos que una columna sea navegable a otra transacción en SAP, le marcamos el parámetro KEY como se ve en la imagen con el primer campo.

FORM LAYOUT_BUILD para diseñar el Layout de salida del ALV

Plantilla ALV - Layout de Salida

Plantilla ALV – Layout de Salida

El box_fieldname indica cual columna será un campo marcable (permitiendo marcar varios registros a la vez), el ZEBRA indica que las líneas se pintaran en 2 colores, entre otros parámetros a pasarle en el layout.

Recuerda que si quieres más información sobre algún parámetro en especial, puedes acudir a la ayuda oficial de SAP.

FORM  ALV_LISTADO para invocar al ALV

Plantilla ALV - Funcion para Generar el Listado ALV

Plantilla ALV – Funcion para Generar el Listado ALV

A esta función le pasamos la imagen de fondo, (ALV_BACKGROUND), el catálogo de campos, el layout de salida, los grupos creados, y la tabla interna que contiene los datos a mostrar.

Como se observa, a la función del ALV le pasamos como parámetros el objeto ‘TOP_OF_PAGE’ para controlar la cabecera del reporte, el objeto ‘PF_STATUS’ para controlar el Status GUI que queremos utilizar, y el evento ‘USER_COMMAND’ para controlar los diferentes eventos que puedan generarse en el reporte.

Estos objetos pueden verse como PERFORMS, por lo que debemos crearles el FORM respectivo que trate la información que queremos.

Veamos cada FORM por separado:

El FORM TOP_OF_PAGE nos permite configurar la cabecera del reporte

Plantilla ALV - Form TOP OF PAGE

Plantilla ALV – Form TOP OF PAGE

La estructura IT_TOPHEADER contendrá los parámetros para codificar la cabecera del reporte, el tipo de parámetro H hace referencia al título de la cabecera, y el tipo de campo S se refiere al cuerpo de la misma; con la función REUSE_ALV_COMMENTARY_WRITE le pasamos al ALV estos parámetros, también aquí se puede invocar a una imagen para que aparezca en el reporte.

El FORM  PF_STATUS nos permite asignar el Status GUI que queremos para el reporte.

Plantilla ALV - Form PF STATUS

Plantilla ALV – Form PF STATUS

Este Status GUI debió haber sido creado antes, si no sabes cómo hacerlo, haz clic AQUÍ .

El FORM USER_COMMAND nos permite controlar los eventos dentro del reporte

Plantilla ALV - Form USER COMMAND

Plantilla ALV – Form USER COMMAND

Desde aquí se puede controlar todos los eventos que consideremos el usuario pueda accionar desde el ALV desplegado, haz clic AQUÍ   para leer un poco más sobre las propiedades de este FORM.

Estos son los objetos básicos para la construcción de un ALV rápido y eficientemente, recuerda, si quieres disponer de los códigos para copiarlos y probarlos, haz clic AQUÍ  , pero si te urge tener un programa que ya sea 100% funcional para solo adaptarlo a tus necesidades, en el siguiente enlace podrás descargarte uno llamado ZALV. 

 Programa ZALV

¿Te ha sido de utilidad este artículo? Házmelo saber con tus comentarios, y suscríbete a mi Comunidad para recibir mi curso gratuito “AprendeABAP en 10 lecciones”, además de contenidos exclusivos  sobre el mundo ABAP.

Richard Rey

“Programando tu Exito”

Opt In Image
Quieres aprender a hacer Reportes ALV?
Descubre la magia de los Reportes SAP en mi Taller Especial de ALV !!!

Se de los primeros en apuntarte y no te quedes sin cupos haciendo clic AQUÍ

O también puedes dejar tus datos aquí abajo y formarás parte de mi comunidad exclusiva, además de recibir mi curso de regalo "Los 7 Pasos para ser un Consultor Exitoso".

 

 

PD: Odio el SPAM. No compartire tus datos con nadie

Si te gusta, compártelo! ...Share on FacebookTweet about this on TwitterShare on LinkedInShare on Google+Email this to someonePrint this page

Comentarios