✒️ABAP / El catálogo ALV automático, los logos, los encabezados y los status GUI Por Alexander Castellanos

Selector Alummnos / Empresas

ABAP El catálogo ALV automático, los logos, los encabezados y los status GUI

ABAP El catálogo ALV automático, los logos, los encabezados y los status GUI

CATALOGO ALV AUTOMATICO, LOGOS, ENCABEZADOS Y STATUS

CREACIÓN DEL CATÁLOGO EN FORMA AUTOMÁTICA

Existen dos formas de crear el catálogo del ALV, la primera es en forma manual, ingresando campo por campo, tal como hicimos en el ej anterior. La segunda, es crear el catálogo en forma automática con la función REUSE_ALV_FIELDCATALOG_MERGE.

Si tomamos el ejemplo de la leccion anterior, el código para la creación automática sería el siguiente:

v_repid = sy-repid.

IF p_grilla = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = v_repid

i_callback_pf_status_set = 'PF_STATUS'

i_callback_user_command = 'USER_COMMAND'

it_fieldcat = ti_catalogo[]

i_callback_top_of_page = 'TOP_OF_PAGE'

is_layout = st_layout

TABLES

t_outtab = ti_usuarios.

ELSEIF p_lista = 'X'.

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.

ENDIF.

Pero para poder hacer esto vamos a tener que modificar dos puntos del programa. El primero es la forma como se declara la tabla interna del ALV. Si creamos el catálogo en forma automática debemos declarar la tabla interna utilizando LIKE y haciendo referencia a campos de una tabla base de datos existente:

*Declarar asi para usar el MERGE en el catalogo

DATA: BEGIN OF ti_usuarios OCCURS 0,

dni LIKE ztabla_usuarios-dni,

nombre_ape LIKE ztabla_usuarios-nombre_ape,

estado_usu LIKE ztabla_usuarios-estado_usu,

direccion LIKE ztabla_usuarios-direccion,

codigo_postal LIKE ztabla_usuarios-codigo_postal,

f_nacimiento LIKE ztabla_usuarios-f_nacimiento,

estado_civil LIKE ztabla_usuarios-estado_civil,

END OF ti_usuarios.

Lo otro que debemos hacer es configurar el editor, para que se restrinja la cantidad de caracteres de ancho de la pantalla a 72

NOTA: Configuración del ancho del Editor ABAP: para configurar el ancho del editor ABAP a 72 líneas accedemos a la opción del menú:

Utilidades-Opciones-Editor_ABAP-Editor y tildamos long.lineas compatib descend (72).

UTILIZACIÓN DE LOGOS Y ENCABEZADOS

En los ALV Grilla podemos agregar logos y encabezados en los listados. Para ello, debemos declarar una tabla del tipo SLIS_T_LISTHEADER y una estructura del tipo SLIS_LISTHEADER.

* Tabla y estructura para la cabecera

ti_header TYPE slis_t_listheader,

st_header TYPE slis_listheader.

Antes de completar el catálogo, vamos a llenar la tabla TI_HEADER con el encabezado del Reporte, el tipo de reporte y la fecha del sistema

DATA: v_fecha(10) TYPE c.

CONCATENATE sy-datum 6(2) sy-datum 4(2)

sy-datum(4) INTO v_fecha SEPARATED BY '/'.

st_header-typ = 'H'.

st_header-info = 'Listado de Usuarios'.

APPEND st_header TO ti_header.

CLEAR st_header.

st_header-typ = 'S'.

st_header-key = 'Tipo de reporte: '.

st_header-info = 'ALV'.

APPEND st_header TO ti_header.

CLEAR st_header.

st_header-typ = 'S'.

st_header-key = 'Fecha: '.

st_header-info = v_fecha.

APPEND st_header TO ti_header.

CLEAR st_header.

Luego, agregamos en la llamada a la función del ALV, el parámetro exporting I_CALLBACK_TOP_OF_PAGE con el literal TOP_OF_PAGE que será el nombre de la subrutina que cargue el contenido del encabezado y el logo.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = v_repid

it_fieldcat = ti_catalogo[]

i_callback_top_of_page = 'TOP_OF_PAGE'

is_layout = st_layout

TABLES

t_outtab = ti_usuarios.

Ahora creamos la subrutina TOP_OF_PAGE con la llamada a la función REUSE_ALV_COMMENTARY_WRITE, que carga el encabezado que definimos en la tabla interna TI_HEADER, junto con el logo ENJOYSAP_LOGO

FORM top_of_page.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = ti_header

i_logo = 'ENJOYSAP_LOGO'.

ENDFORM. "top_of_page

NOTA: Transacción SE78: para ver los logos disponibles en el sistema o cargar nuevos debemos utilizar la transacción SE78

Finalmente ejecutamos el programa:

AUDIO: Para subir Logos, aparte de la Transacción SE78, tenemos la transacción estándar OAER. Para subir un logo completamos los parámetros solicitados: Nombre Clase=PICTURE, Tipo Clase = OT, Clave del Objeto=NOMBRE_LOGO (en Mayúscula). Ejecutamos la transacción y luego seleccionamos “Documento Estándar”, pinchamos sobre el icono “imagen” y saldrá una ventana de dialogo, donde podemos seleccionar la imagen de nuestro PC para subirla al servidor y ya se podrá usar en un reporte ALV. Si deseamos agregar la imagen a una Orden de Transporte debemos acceder al menú Documentos-Transportar.

UTILIZACIÓN DE STATUS GUIs

Para poder utilizar un Status GUI en un reporte ALV, vamos a agregar en la llamada a la función del ALV el parámetro exportin I_CALLBACK_PF_STATUS_SET con el literal PF_STATUS, que será el nombre de la subrutina que declare la utilización del Status GUI y el parámetro exporting I_CALLBACK_USER_COMMAND con el literal USER_COMMAND, que será el nombre de la subrutina que se ejecute para capturar la acción realizada por el usuario:

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = v_repid

i_callback_pf_status_set = 'PF_STATUS'

i_callback_user_command = 'USER_COMMAND'

it_fieldcat = ti_catalogo[]

i_callback_top_of_page = 'TOP_OF_PAGE'

is_layout = st_layout

TABLES

t_outtab = ti_usuarios.

Ahora definimos la subrutina PF_STATUS que setea el status:

FORM pf_status USING rt_extab TYPE slis_t_extab.

SET PF-STATUS '0100'.

ENDFORM. "PF_STATUS

Vamos a crear en el status, un botón con la descripción “Usuarios activos” y el código USU_ACTI.

También en las Teclas de función (Function Keys) del status, agregamos los códigos para poder navegar para atrás, volver a la pantalla principal o salir del programa. Cuando creamos estos botones, debemos acordarnos de setearlos con Tipo de función (Function Type) igual a E, sino no funcionarán como esperamos.

Por último agregamos la subrutina que capturará las acciones realizadas por el usuario:

FORM user_command USING r_ucomm TYPE syucomm

rs_selfield TYPE slis_selfield.

CASE r_ucomm.

WHEN 'ACEPTAR'.

WHEN 'CANCELAR'.

ENDCASE.

ENDFORM. "user_command

Finalmente, si ejecutamos el reporte, veremos en el Status GUI, el botón de usuarios activos y si lo ejecutamos, se procesará el código existente en la subrutina USER_COMMAND:


 

Escanear / Compartir

 

 


Sobre el autor

Publicación académica de Alexander Castellanos, en su ámbito de estudios para el Curso SAP ABAP.

SAP Senior

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

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "El catálogo ALV automático, los logos, los encabezados y los status GUI" de la mano de nuestros alumnos.

SAP Senior

Catálogo automático: · En vez de definir a mano cada columna, le puedo pedir a SAP que lo haga por mí. · Uso la función: REUSE_ALV_FIELDCATALOG_MERGE. · Requisito: Mi tabla interna debe estar declarada con BEGIN OF itab OCCURS 0... y los campos deben estar basados en tablas de la base de datos (con LIKE). Poner un logo y un encabezado: 1. Logo: Lo subo usando la transacción SE78. Luego en mi programa, lo referencio con su nombre (ej: 'ENJOYSAP_LOGO'). 2. Encabezado: Creo una tabla de tipo SLIS_T_LISTHEADER y la lleno con los textos que quiero que aparezcan arriba del ALV (título, fecha, etc.). 3. Llamo a la función REUSE_ALV_COMMENTARY_WRITE para que lo muestre. Status...

Acceder a esta publicación

Creado y Compartido por: Mara Fadua Romero Hernandez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master


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...

Acceder a esta publicación

Creado y Compartido por: Juan Ignacio Romero

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Introducción: Aprende a optimizar reportes ALV con catálogos automáticos, encabezados personalizados y barras de herramientas propias. 1 Catálogo Automático en ALV ¿Por qué automatizar? Evita definir campos manualmente. ¡Ahorra tiempo y reduce errores! Pasos clave: Declaración especial de tabla interna: Error común: Sin esto, el módulo falla. Configurar editor a 72 caracteres: Menú: Utilidades → Opciones → Editor ABAP → Tildar "Long. líneas compatib descend. (72)" Consecuencia: Si no se hace, genera dump (SYNTAX_ERROR)....

Acceder a esta publicación

Creado y Compartido por: Oscar Aravena Muller / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


El catálogo ALV automático, los logos, los encabezados y los status GUI 1 La creación del catálogo del ALV en forma automática. En ABAP, el catálogo del ALV (Listado de Salida ABAP) puede generarse de manera automática utilizando el módulo de funciones REUSE_ALV_FIELDCATALOG_MERGE. Este método permite crear de forma dinámica las definiciones de columnas del ALV, simplificando el desarrollo del reporte. Para ello, se deben cumplir dos requisitos fundamentales: Declaración correcta de la tabla interna: Debe utilizarse la sentencia OCCURS y LIKE, haciendo referencia a una tabla base de datos existente. Esto asegura que la estructura de los campos coincida con...

Acceder a esta publicación

Creado y Compartido por: Geovanny Martínez Campoverde

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert



¿Qué es el catálogo ALV automático en SAP? ALV (ABAP List Viewer) es una herramienta proporcionada por SAP para visualizar listas de datos de forma estructurada y estandarizada. El ALV automático hace referencia a un tipo de ALV que se genera con mínima codificación manual, generalmente utilizando funciones estándar que permiten mostrar información sin tener que definir manualmente cada componente visual o de estructura. Características principales del ALV automático: Generación rápida de reportes: El ALV automático permite generar listas o grids con funcionalidades como ordenamiento, filtros, subtotales, exportación a Excel...

Acceder a esta publicación

Creado y Compartido por: David Ibarra / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

El catálogo ALV automático, los logos, los encabezados y los status GUI 1. La creación del catálogo del ALV en forma automática Existen 2 formas de crear el catálogo del ALV: La primera es en forma manual, ingresando campo por campo FORM armar_catalogo. REFRESH ti_catalogo. CLEAR wa_catalogo. wa_catalogo-fieldname = 'DNI'. "Nombre del campo wa_catalogo-tabname = 'TI_USUARIOS'. "Nombre Tabla wa_catalogo-seltext_s = 'DNI'. "Descripción corta Cabecera wa_catalogo-seltext_m = 'DNI'. "Descripción media Cabecera wa_catalogo-seltext_l = 'DNI'. "Descripción larga Cabecera wa_catalogo-outputlen = 10. "Ancho...

Acceder a esta publicación

Creado y Compartido por: Yeny Gisela Yanes Bautista

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Catalogo de reportes ALV Existen dos formas de crear el catalogo de un ALV, de forma manual ingresando campo por campo y configurando sus propiedades y de forma automatica con el modulo de funciones REUSE_ALV_FIELDCATALOG_MERGE. Para usar este modulo de funciones que crea el catalogo automaticamente, se debe tener ciertos parametros a la hora de la creacion del reporte: Para declarar la tabla interna del tipo de una tabla de base de datos, se debe declarar utilizando OCCURS 0 (no hara falta la cabecera o estructura ya que vendra incluida con la tabla interna) y LIKE haciendo referencia a los campos de la tabla base de datos Se debe configurar el editor ABAP para que restrinja la cantidad de caracteres de ancho de la pantalla a 72...

Acceder a esta publicación

Creado y Compartido por: Luciano Martinez / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Creación del catálogo en forma automática. Para hacerlo de manera automática usamos la función REUSE_ALV_FIELDCATALOG_MERGE:; para hacerlo se tiene que modificar dos puntos, la forma de como se declara la tabla interna del ALV utilizando el LIKE y la otra sería configurando el editor para restringir la cantidad de caracteres a 72. Utilidades > opciones >Editor ABAP > editor > Y tidamos Long. leneas compatib descend.(72). Utilización de Logos y encabezados. Para esto se declarar una tabla de tipo SLIS_T_LISTHEADER y una estructura del tipo SLIS_LIFETHEADER SE78: para ver los logos disponibles del sistema. Utilización de Status GUIs Agregar en la llamada de la función...

Acceder a esta publicación

Creado y Compartido por: Jose Medina / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

La creación del catálogo del ALV en fortmato automatica: Existen dos formas de crear el catálogo del ALV, la primera es en formato manual, ingresando campo, La segunda consiste en crear el catálogo del ALV en formato automática con el mópdulo de funciones REUSE_ALV_FIELDCATALOG_MERGE. Pero para poder utilizar el módulo de funciones que creamos automáticamente el caalogo vamos a tener que modificar dos puntos del programa : se declara la tabla interna del ALV, en este caso TI_USUARIOS. Si creamos el catálogo en forma utomatica debemops declarar la tabla interna utilizando la sentencia OCCURS y LIKE y hacemos referencia a campos de una tabla base de datos existente. Lo segundo...

Acceder a esta publicación

Creado y Compartido por: Javier Miguel Angel Barcelo / Disponibilidad Laboral: PartTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

LA CREACIÓN DEL CATÁLOGO DEL ALV EN FORMA AUTOMÁTICA: existen 2 formas de crear el catálogo del ALV, una de manera manual es decir, ingresando campo por campo, la segunda consiste en crear el catálogo en forma automática con el módulo de funciones REUSE_ALV_FIELDCATALOG_MERGE, para poder utilizar este módulo vamos a tener que modificar dos puntos del programa. El primero consiste en la forma como se declara la tabla interna del ALV, por ejemplo TI_USUARIOS, si creamos el catálogo en forma automática debemos declarar la tabla interna utilizando la sentencia OCCURS y LIKE haciendo referencia a campos de una tabla base de datos existente. La declaración de la tabla interna...

Acceder a esta publicación

Creado y Compartido por: Jean Carlos Lopez / Disponibilidad Laboral: FullTime

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 99.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

🔎Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!