![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️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
![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](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/24.jpg)
1. Creación del catálogo en forma automática
Existe dos formas de crear el catálogo del ALV, la primera es en forma manual, ingresando campo por campo, tal como hicimos en el ejemplo de la leccion anterior. La segunda, es crear el catálogo en forma automática con la función REASE_ALV_FIELDCATALOG_MERGE.
Si deseamos crear el catálogo de forma automática debemos declarar la tabla interna utilizando like y haciendo referencia a campos de una tabla base de datos existente.
Lo otro que debemos hacer es configurar el editor, para que se restrinja la cantidad de caracteres de ancho de la pantalla a 72.
Configuración del Ancho del editor ABAP: accedemos a la opción del menú: Utilidades / opciones / Editor ABAP / Editor / y tildamos Long. Lineas compatib descend.(72)
2. 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_TLISTHEADER 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 del reporte y la fecha del sistema.
FORM llenar_cabecera .
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.
ENDFORM.
Luego, agregamos en la llamada a la función del ALV, el parámetro exporting I_CALL_TOP_PAGE con el literal 'TOP_OF_PAGE', que será el nombre de la subrutina que carga 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 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
Transacción SE78 para ver logos disponibles en el sistema o cargar nuevos. También la transacción OAER podemos subir logo.
3. Utilización de Status GUIS
Para poder utilizar un Status GUI en un reporte ALV, vamos a agregar a la pantalla la funcion del ALV el parámetro exporting I_CALLBACK_PF_STATUS_SET con el literal 'PF_STATUS', que sera 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_STATUSa
 
 
 
Sobre el autor
Publicación académica de Edward Henry Rosario Piezal, en su ámbito de estudios para la Carrera Consultor ABAP.
Edward Henry Rosario Piezal
Profesión: Ingeniero en Sistema - Republica Dominicana - Legajo: FM99R
✒️Autor de: 68 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime