✒️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
Creacion del catalogo de forma automatica.
Existe otra forma de poder crear el catalogo ALV y es utilizando la funcion REUSE ALV FIELDCATALOG MERGE
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_catalogo[]
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
Pero para pode realizar esto deberemos modificar la creacion de la tabla interna del ALV . Deberemo declarar la tabla utilizando LIKE y haciendo referencia a campos de una tabla de bD existente
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.
Tambien deberemos configurar el editor para restrinja la cantidad de caracteres de ancho de pantalla a 72
Utilidades / Opciones / Editor ABAP / Editor / Tildamos Long. Lineas compatib descend (72)
Utilizacion de logos y encabezados.
Para agregar logos y encabezados debemos declarar una tabla del tipo SLIS_T_LISTHEADER y una estructura SLIS_LISTHEADER
* Tabla y estructura para la cabecera
ti_header TYPE slis_t_listheader,
st_header TYPE slis_listheader.
Antes de completar el catalog debemos de llenar el TI_HEADER
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 en la funcion del ALV agregamos el parametro I_CALL_TOP_PAGE con el literal 'TOP_OF_PAGE' que sera la subrutina que carge el contenido del logo
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.
La funcion 'REUSE_ALV_COMMENTARY_WRITE' carga el encabezado que se definio en la table interna ti_header
*&---------------------------------------------------------------------*
*& Form top_of_page
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = ti_header
i_logo = 'ENJOYSAP_LOGO'.
ENDFORM. "top_of_page
**Con la transaccion SE78 podemos ver los logos disponibles en el sistema , asi como cargas nuevos.
**Otra posibilidad es con la transaccion OAER . Completamos los parametros de la siguiente forma.
NOMBRE CLASE : PICTURES
TIPO DE CLASE : OT
CLAVE DEL OBJETO : NOMBRE DE LOGO (LOGO_EMPRESA)
Ejecutamos la transaccion
En la pantalla siguiente seleccionamos DOCUMENTO ESTANDARD , Pinchamos sobre imagen verificamos que podemos subir distintos tipos de archivos y visualizaremos una ventana una dialogo donde podremos subir desde nuestra PC un archivo para el encabezado del ALV, si queremos agregarla a una Orden de transporte debemos acceder al menu Documentos /Transportar
Utilizacion de status GUI
Para poder utilizar el status GUI vams agregar a la funcion de la funcion de ALV el parametro I_CALLBACK_PF_STATUS_SET con el literar 'PF_STATUS' que sera el nombre de la subrutina. y el parametro exporting I_CALLBACK_USER_COMMAND con el literal 'USER_COMMAND' que sera el nombnre de la subrutina que se ejecute para capturar la accion 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.
Definimos la subrutina 'PF_STATUS'
*&---------------------------------------------------------------------*
*& Form pf_status
*&---------------------------------------------------------------------*
FORM pf_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS '0100'.
ENDFORM. "PF_STATUS
Crearemos el STATUS GUI un boton con la descirpcion USUARIOS ACTIVOS y el codigo USU_ACTI
Tambien en Tecla de Funcion (Function KEYS) , agregamos los codigos para poder navegar para atras , volver a la pantalla principal o salir del programa. Cuando creemos estos botones deberemos setearlos con el TIPO DE FUNCION (Function Type) = E
Por ultimo la subrutina que capturara las acciones realizadas por el usuario.
*&--------------------------------------------------------------------*
*& Form USER_COMMAND
*&--------------------------------------------------------------------*
FORM user_command USING r_ucomm TYPE syucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN 'ACEPTAR'.
WHEN 'CANCELAR'.
ENDCASE.
ENDFORM. "user_command
 
 
 
Sobre el autor
Publicación académica de Fabian Samir Geldres Del Carpio, en su ámbito de estudios para la Carrera Consultor ABAP.
Fabian Samir Geldres Del Carpio
Profesión: Computación E Informatica - Peru - Legajo: XT66M
✒️Autor de: 51 Publicaciones Académicas
🎓Cursando Actualmente: Consultor Funcional Módulo PP
🎓Egresado del módulo:
Certificación Académica de Fabian Geldres