================= ******** UNIDAD 5 ******** =================
******** Lección 7: "Catalogo ALV automatico, Logos, Encabezados y Status" *********
Catalogo ALV, existen 2 formas de crearlo, de forma manual campo x campo y por medio de la funcion REUSE_ALV_FIELDCATALOG_MERGE.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = v_repid
i_internal_tabname = 'TI_USUARIOS'
i_client_never_display = 'X'
CHANGING
ct_fieldcat = ti_catalogo()
EXCEPTIONS
program_error = 1
OTHERS = 2.
Para realizar mediante la función debemos modificar 2 puntos en el programa. la forma como se declara la tabla interna del ALV, debemos declara la usando LIKE y haciendo referencia a los campos de una tabla de bd existente.
DATA: BEGIN OF ti_usuarios OCCURS 0,
dni LIKE ztabla_usuarios-dni,
nombre LIKE ztabla_usuarios-nombre
END OF ti_usuarios.
Lo segundo que debemos de realizar es cambiar el editor para que restrinja la cantidad de caracteres de ancho de la pantalla a 72.
UTILIDADES/OPCIONES/EDITOR ABAP/EDITOR/LONG.LINEAS DESCEND.(72)
UTILIZACIÓN DE LOGOS Y ENCABEZADOS
En los ALV, se puede agregar logos y encabezados, para ello declaramos una tabla de tipo SLIS_T_LISTHEADER y una estructura SLIS_LISTHEADER.
ti_header TYPE SLIS_T_LISTHEADER,
st_header TYPE SLIS_LISTHEADER.
Antes de completar el catalogo completamos la tabla, con el encabezado del reporte, el tipo de reporte y la fecha del sistema.
st_header-typ = 'N'.
st_header-info = 'Listado de Usuarios'.
APPEND st_header TO ti_header.
CLEAR st_header.
st_header-typ = 'N'.
st_header-key = 'Listado de Usuarios'.
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 funcion del ALV, el parametro EXPORTING 'I_CALL_TOP_PAGE' con el literal 'TOP_OF_PAGE'.
CALL FUNCION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALL_TOP_PAGE = 'TOP_OF_PAGE'
IT_FIELDCAT = 'TI_CATALOGO()
IS_LAYOUT = ST_LAYOUT
TABLES
t_outtab = ti_usuarios.
Ahora creamos la subrutina TOP_OF_PAGE con la llamada a la funcion REUSE_ALV_COMMENTARY_WRITE que carga el encabezado de la tabla interna TI_HEADER junto con el logo.
FORM TOP_OF_PAGE.
CALL FUNCION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = TI_HEADER
I_LOGO = 'ENJOYSAP_LOGO'
ENDFORM.
En la tx SE78 podemos ver los logos disponibles y por cargar(nuevos)