✒️ABAP El ALV Grid Control
ABAP El ALV Grid Control
Introducción al ALV Grid Control
Para crear el ALV ustilizaremos un contenedor. Este objeto puede contener otros controles a parte del ALV Grid Control como por ejemplo Tree Control, SAP Picture Control, SAP Splitter Control y más.
El contenedor proporciona un área física para la visualización de los objetos. Todos los controles existen dentro de un contenedor.
Utilizaremos dos objetos:
CL_GUI_CUSTOM_CONTAINER " Clase para administrar los controles Z
CL_GUI_ALV_GRID " Clase para administrar el ALV GRID CONTROL.
Transacción SE24 (Generador de clases) para ver todos los atributos, métodos y demás configuraciones de los objetos.
Pasos para la creación del ALV Grid Control
- Creamos el reporte ZPRUEBA_ALV_GRID_OBJETOS
TYPE-POOLS: slis.
" Tabla de salida del ALV
DATA: ti_usuarios TYPE STANDARD TABLE OF ztabla_usuarios,
st_usuarios LIKE LINE OF ti_usuarios.
" Tabla y estructura del catálogo.
DATA: ti_catalogo TYPE lvc_t_fcat,
st_catalogo LIKE LINE OF ti_catalogo,
ok_code TYPE sy-ucomm,
o_grilla TYPE REF TO cl_gui_alv_grid,
o_contenedor TYPE REF TO cl_gui_custom_container.
START-OF-SELECTION.
PERFORM seleccion_datos. " Realiza la búsqueda de los datos en la tabla ZTABLA_USUARIOS.
END-OF-SELECTION.
CALL SCREEN 0100.
2. Creamos la dynpro 0100 y el Status GUI 0100 con los botones de navegación estándar. Asignaremos el OK_CODE a la dynpro.
3. Utilizando el Screen Painter, a través de la transacción SE80, creamos un Custom Control que servirá de contenedor de nuestro ALV.
4. Luego en la lista de elementos de la dynpro asignaremos el nombre CONTENEDOR al custom control.
5. En la lógica de procesamiento de la dynpro crearemos los siguientes módulos.
PROCESS BEFORE OUTPUT.
MODULE status_0100.
MODULE crear_objetos_0100.
PROCESS AFTER INPUT.
MODULE salir_0100.
MODULE user_command_0100.
6. En CREAR_OBJETOS_0100 crearemos los objetos O_CONTENEDOR y O_GRILLA tal como vemos a continuación:
MODULE crear_objetos_0100 OUTPUT.
IF o_contenedor IS INITIAL.
CREATE OBJECT o_contenedor
EXPORTING
container_name = 'CONTENEDOR'.
CREATE OBJECT O_GRILLA
EXPORTING
i_parent = o_contenedor.
PERFORM armar_catalago.
CALL METHOD o_grilla->set_table_for_first_display
CHANGING
it_outtab = ti_usuarios
it_fieldcatalog = ti_catalogo[].
ELSE.
CALL METHOD o_grilla->refresh_table_display
EXPORTING
i_soft_refresh = 'X'
EXCEPTIONS
finished = 1
others = 2.
ENDIF.
ENDIF.
ENDMODULE.
7. SET_TABLE_FOR_FIRST_DISPLAY para visualizar el ALV por primera vez. REFRESH_TABLE_DISPLAY para visualizarlo después de realizar algún cambio y actualizar el ALV. Finalmente liberamos los objetos:
MODULE salir_0100 INPUT.
CALL METHOD o_grilla->free.
CALL METHOD o_contenedor->free.
LEAVE PROGRAM.
ENDMODULE.
 
 
 
Sobre el autor
Publicación académica de Javier Exposito Diaz, en su ámbito de estudios para la Carrera Consultor ABAP.
Javier Exposito Diaz
Profesión: Programador Abap/4 Sap - España - Legajo: PF87S
✒️Autor de: 55 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Javier Exposito