
Creación automática del catálogo ALV
Se explican dos métodos para crear el catálogo de un reporte ALV: de forma manual (campo por campo) y de forma automática usando el módulo de funciones Reduce ALV Fill Catalog Merge.
Para la creación automática, es necesario modificar la declaración de la tabla interna del ALV utilizando OCCURS y LIKE, haciendo referencia a una tabla de base de datos existente.
Declarar la tabla con OCCURS cero permite que la estructura esté incluida en la tabla interna y evita declarar una cabecera adicional.
Se debe configurar el editor ABAP para que ninguna línea de código supere los 72 caracteres de ancho, desde el menú Utilidades > Opciones > Editor ABAP.
No respetar esta restricción puede resultar en un dump al ejecutar el reporte.
Tras usar el módulo de funciones, la tabla interna TI catálogo resulta cargada automáticamente y, si se desea, se pueden modificar propiedades específicas de los campos luego de la ejecución del módulo.
Inclusión de logos y encabezados
- En reportes ALV tipo grilla (grid) es posible incluir logos y encabezados, a diferencia del ALV tipo lista.
- Se debe declarar una tabla interna y una estructura de tipo SLIST LISTHEADER.
- Se explica cómo llenar la tabla interna TI header con el encabezado, tipo y fecha del reporte en una subrutina específica.
- Al llamar al módulo de funciones ALV, se utiliza el parámetro exporting y call top page para indicar la subrutina que cargue el encabezado y logo.
- La subrutina top of page emplea el módulo de funciones Reduce ALV Commentary Write para mostrar el encabezado y logo.
- Los logos se gestionan mediante la transacción estándar SE78.
Utilización de status GUI en ALV
- Para implementar un status GUI en un reporte ALV, se agregan los parámetros exporting y callback PFSTATUS SET y callback user command en la llamada al módulo de funciones.
- Se crea la subrutina PFStatus para configurar el status GUI y la subrutina UserCommand para capturar acciones del usuario.
- Para crear un nuevo status GUI, se selecciona "Crear status GUI" y se asigna un nombre y descripción.
- En la barra de pulsadores se puede agregar un botón personalizado (por ejemplo, "Usuarios activos") y ajustar el código de función.
- Es importante configurar los botones de navegación (back, exit, cancel) con el tipo de función E para su correcto funcionamiento.
- Al ejecutar el reporte, se visualiza el status GUI junto con los botones configurados y las acciones del usuario se gestionan en UserCommand.
Comparación: generación manual vs. automática del catálogo ALV
No hay una forma claramente más eficiente entre la generación manual y automática del catálogo ALV.
La generación automática suele ser más rápida, ya que evita escribir campo por campo.
Si se requieren cambios importantes en las propiedades de cada campo, el tiempo invertido manualmente y automáticamente tiende a igualarse.
La generación automática implica también preparación específica de la tabla interna y considerar limitaciones de longitud de código, agregando pasos adicionales.
Subida de logos a SAP
Se puede subir un logo a SAP usando la transacción OAER, además de la clásica SE78.
En OAER, se debe completar los parámetros: Nombre clase ("picture"), Tipo de clase ("OT") y Clave del objeto (nombre del logo, por ejemplo, "LOGO_EMPRESA").
Tras ejecutar, se selecciona Documento estándar y luego el ícono Imagen para cargar el archivo desde la PC.
Es posible agregar la imagen a una orden de transporte mediante el menú Documentos > Transportar.
Generación y ajuste del catálogo ALV automático
- Al ejecutar el programa, se puede seguir paso a paso la generación automática del catálogo ALV mediante el módulo de funciones ProduceALVFillCatalogMerge.
- El catálogo generado automáticamente llena la tabla interna correctamente, creando una línea por cada campo visible.
- Si se deben modificar varias configuraciones de los campos, el esfuerzo manual termina siendo similar al automático.
- Se pueden introducir campos de pruebas y modificar propiedades sobre la marcha en la tabla interna.
- Configuración adicional y funcionalidades del reporte ALV
- Deben configurarse parámetros especiales como ilcallback_pfd_statusset para definir el estatus VIP y presentar el encabezado.
- El ilcallbackusercommand permite configurar botones específicos en el reporte para acciones del usuario.
En el ejemplo usado, se muestra cómo agregar logo, título e información en el encabezado, y un botón ("Usuarios activos") que ejecuta una acción al ser presionado.
Sugerencias
Ajustar la declaración de tablas internas y el ancho de línea del código ABAP según lo indicado.
Modificar propiedades del catálogo ALV automáticamente generado si se requiere personalización.
Implementar subrutinas para encabezado y status GUI en ALV grid siguiendo los ejemplos descritos.
Utilizar la transacción SE78 para gestionar los logos a incluir en reportes.