✒️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
1. Creación del catálogo de manera automática
Existen dos maneras de crear el catálogo del ALV:
- Manera manual -> cargando manualmente uno a uno los campos que componen el catálogo
- Manera automática -> automáticamente haciendo uso de la función REUSE_ALV_FIELDCATALOG_MERGE
Para hacerlo de manera automática, se debe primero declarar de manera diferente la tabla interna del ALV, utilizando LIKE y haciendo referencia a campos de una tabla de base de datos existente. Pej:
DATA: BEGIN OF ti_usuarios OCCURS 0,
dni LIKE ztabla_usuarios-dni,
nombre_ape LIKE ztabla_usuarios-nombre_ape,
....
END OF ti_usuarios.
y se invoca de la siguiente manera la creación automática:
v_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'.
EXPORTING
i_program_name = v_repid
i_internal_tabname = 'TI_USUARIOS'
i_client_never_display = 'X'
i_inclname = v_repid
CHANGING
ct_fieldcat = ti_catalog[]
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
Lo otro que se debe hacer es configurar el editor, para qye se restrinja la cantidad de caracteres de ancho de la pantalla a 72. para esto se ingresa al menú Utilidades -> Opciones -> Editor ABAP -> Editor -> Tildamos Long. líneas compatib. descend. (72)
2. Utilización de Logos y Encabezados
En los ALV Grilla podemos agregar logos y encabezados en los listados. Para esto se debe declarar una tabla de tipo SLIS_T_LISTHEADER y una estructura del tipo SLIS_LISTHEADER. Luego la tabla se llena con el encabezado del reporte, el tipo de reporte y la fecha del sistema Ej:
ti_header TYPE slis_t_listheader,
st_header TYPE slis_listheader.
st_header-typ = 'H'.
st_header-info = 'Listado de Usuarios'.
APPEND st_header TO ti_header.
CLEAR st_header.
...
Luego se agrega en la llamada de 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 cargue el contenido del encabezado y el logo.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = v_repid
it_fieldcat = ti_catalog[]
i_callback_top_of_page = 'TOP_OF_PAGE'
is_layout = st_layout
TABLES
t_outtab = ti_usuarios.
Luego se procede a crear 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 del reporte. Ej:
FORM top_of_page
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = ti_header
i_logo = 'ENJOYSAP_LOGO'.
ENDFORM.
Para ver los logos disponibles en el sistema o cargar nuevos, debemos usar la Tx SE78.
3. Utilización de Status GUIs
Para poder utilizar un status_GUI en un reporte ALV se debe agregar la llamada a la función del ALV el parámetro exporting 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 campturar la acción realizada por el usuario. Pej:
CALL FUNTION '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.
Luego se define la subrutina que setea el status que en el ejemplo es PF_STATUS utilizando el código del status GUI creado.
 
 
 
Sobre el autor
Publicación académica de Jose Hernando Donado Cervantes, en su ámbito de estudios para la Carrera Consultor ABAP.
Jose Hernando Donado Cervantes
Profesión: Ingeniero de Sistemas - Colombia - Legajo: KU74P
✒️Autor de: 55 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Jose Donado