✒️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
Automatic Creation of ALV Catalog
The automatic generation of the ALV catalog using the REUSE_ALV_FIELDCATALOG_MERGE function module is illustrated below. Let's consider the following code to declare the internal table it_users:
DATA: BEGIN OF it_users OCCURS 0,
dni LIKE zuser_table_jega-dni,
nombre_ape LIKE zuser_table_jega-nombre_ape,
estado LIKE zuser_table_jega-estado,
fecha_nacimiento LIKE zuser_table_jega-fecha_nacimiento,
END OF it_users.
Here, the OCCURS 0 and LIKE statements ensure consistency with the database structure, based on the ZUSER_TABLE_JEGA table.
In the context of using REUSE_ALV_FIELDCATALOG_MERGE:
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = v_repid
i_internal_tabname = 'IT_USERS'
i_client_never_display = 'X'
i_inclname = v_repid
CHANGING
ct_fieldcat = it_catalog[]
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
In this case, v_repid represents the program name, and the internal table it_catalog is populated with the catalog automatically generated by the function. This catalog is crucial for configuring the ALV presentation.
Additionally, it is essential to configure the ABAP editor to limit the screen width to 72 characters. This is done through the following path:
|-> Utilities
|-> Options
|-> ABAP Editor
|-> Editor
|-> Select "Screen width (72)"
Using Logos and Headers in ALV
In ALV Grids, the capability to integrate logos and headers in list displays enhances the presentation, a feature not applicable to ALV Lists. To implement this, declare an internal table of type SLIS_T_LISTHEADER and a structure of type SLIS_LISTHEADER. For instance:
DATA: ti_header TYPE slis_t_listheader,
wa_header TYPE slis_listheader.
Next, introduce a subroutine, such as FILL_HEADER, within the START-OF-SELECTION block:
START-OF-SELECTION.
PERFORM fill_header.
Inside the fill_header subroutine, populate the internal table TI_HEADER with relevant details, such as the report header, report type, and system date. Following this, include the parameter I_CALL_TO_PAGE with the literal 'TOP_OF_PAGE' in the ALV function module call:
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_listheader = ti_header[]
i_logo = 'ENJOYSAP_LOGO'.
This parameter indicates the subroutine responsible for loading the header and logo content.
Now, create the TOP-OF-PAGE subroutine, incorporating a call to the REUSE_ALV_COMMENTARY_WRITE function module. This module loads the header from the TI_HEADER table, accompanied by the 'ENJOYSAP_LOGO' logo.
*&---------------------------------------------------------------------*
*& 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
To manage available logos, use the standard transaction SE78.
Implementing a GUI Status in ALV
- To integrate a GUI status in an ALV report, augment the ALV function module call with the following parameters:
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'
- In this setup, 'PF_STATUS' serves as the literal indicating the subroutine that declares the utilization of the GUI status, while 'USER_COMMAND' designates the literal for the subroutine that executes to capture user actions.
- Define the PF_STATUS subroutine, responsible for configuring the GUI status:
*&--------------------------------------------------------------------*
*& Form pf_status
*&--------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM pf_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS '0100'.
ENDFORM. "PF_STATUS
- Create a GUI status by right-clicking and selecting Create / STATUS GUI:
STATUS GUI 0100.
- Within the button bar, introduce a button labeled 'Active Users' with the code 'USU_ACTI'.
- In the Function Keys of the GUI status 0100, include navigation button codes for going back (BACK), returning to the main screen (EXIT), or exiting the program (CANCEL).
- Configure these navigation button codes, ensuring they are set with a Function Type equal to 'E' to function as intended.
- Conclude by adding the USER_COMMAND subroutine to capture user actions:
*&--------------------------------------------------------------------*
*& Form USER_COMMAND
*&--------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM user_command.
CASE sy-ucomm.
WHEN 'USU_ACTI'.
" Processing for Active Users button click.
WHEN OTHERS.
" Additional cases if needed.
ENDCASE.
ENDFORM. "user_command
- Upon executing the report, the GUI status appears in the ALV output, featuring the 'Active Users' button. Clicking the button triggers the corresponding action, showcasing the successful implementation of a GUI status in the ALV report for enhanced user interaction.
 
 
 
Sobre el autor
Publicación académica de Jaime Eduardo Gomez Arango, en su ámbito de estudios para la Carrera Consultor ABAP.
Jaime Eduardo Gomez Arango
Profesión: Ingeniero de Sistemas y Computaci?n - Espa?a - Legajo: SW34C
✒️Autor de: 149 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP Fiori
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
Presentación:
Ingeniero de sistemas y computaci?n con 8 a?os de experiencia el desarrollo frontend & backend (react/node) y en cloud (aws), actualmente desarrollando habilidades en sap btp, ui5, abap y fiori.
Certificación Académica de Jaime Gomez