✒️ABAP POO Introducción al ALV Grid Control
ABAP POO Introducción al ALV Grid Control
INTRODUCCION AL ALV GRID CONTROL
SAP nos permite crear controles Z utilizando objetos ABAP.
Uno de los controles de los que hablamos es el ALV_GRID_COTROL con el cual podremos crear reportes ALV utilizando objetos.
Mediante ALV_GRID_CONTROL tendremos disponibles todas las funciones estándar de la barra de menús y también podremos configurar todas las propiedades del ALV para adaptarlo a nuestras necesidades.
Para crear un ALV utilizaremos un contenedor. Este proporciona un área física para la visualización de los objetos. Todos los controles existen dentro de un contenedor.
Utilizaremos dos objetos para administrar los controles Z y el ALV_GRID_CONTROL.
Son las clases:
CL_GUI_CUSTOM_CONTAINER
CL_GUI_ALV_GRID
NOTA: Podemos ver todos los atributos, métodos y demás configuraciones de los objetos a través del “Generador de clases” transacción SE24
PASOS PARA LA CREACIÓN DEL ALV GRID CONTROL
Creamos el report ZPRUEBA_ALV_GRID_OBJETOS
Realizamos las siguientes declaraciones de datos:
TYPE-POOLS: slis.
DATA: ti_usuarios LIKE TABLE OF wa_usuarios,
………st_usuarios LIKE LINE OF ti_usuarios.
DATA: ok_code TYPE sy-ucomm,
………obj_grilla TYPE REF TO cl_gui_alv_grid,
………obj_contenedor TYPE REF TO cl_gui_custom_container.
La tabla ZTABLA_USUARIOS debería estar ya creada. “en la documentación adicional esta detallada la estructura de la misma”
En START-OF-SELECTION realizamos la búsqueda de los datos en la tabla ZTABAL_USUARIOS.
En END-OF-SELECTION llamamos a la dynpro 0100 que es la que almacenará el ALV
START-OF-SELECTION
…PERFORM seleccion_datos.
END-OF-SELECTION.
…CALL SCREEN 0100.
Creamos la dynpro 0100 y el Status GUI 0100 con los botones de navegación estándar.
Asignaos el OK_CODE a la dynpro.
Utilizando el SCREEN PAINTER (Tcode SE80), creamos un Custom Control que servirá de contenedor del ALV
En la lista de elementos de la dynpro asignamos el nombre CONTENEDOR al custom control
En la logia de procesamiento de la dynpro creamos estos modulos:
PROCESS BEFORE OUTPUT.
…MODULE status_0100.
…MODULE crear_objetos_0100.
PROCESS AFTER INPUT.
…MODULE salir_0100.
En el módulo CREAR_OBJETOS_0100 creamos los objetos obj_contenedor y obj_grilla:
MODULE crear_objetos_0100 OUTPUT.
…IF obj_contenedor IS INITIAL.
……CREATE OBJECT obj_contenedor.
………EXPORTING container_name= ‘CONTENEDOR’.
……CREATE OBJECT obj_grilla.
………EXPORTING i_parent = obj_contenedor.
……CALL METHOD o_grilla->set_table_for_first_display
………EXPORTING
…………i_structure_name = ‘ZTABLA_USUARIOS’
………CHANGING
…………it_outtab = ti_usuarios
………EXCEPTIONS
…………OTHERS = 4.
…ELSE
……CALL_METDO obj_grilla->refresh_table_display
………EXPORTING
…………i_soft_refresh = ‘X’
………EXCEPTIONS
…………finished = 1
…………OTHERS = 2.
…ENDIF.
ENDMODULE.
Si queremos excluir botones estándar del menú, debemos completar una tabla interna del tipo ui_functions y pasarla en el parámetro it_toolbar_excluding corresponidente al método SET_TABLE_FOR_FIRST_DISPLAY, los códigos de función de los botones que queremos quitar de la barra se pueden obtener inspeccionando las constante de la clase estándar CL_GUI_ALV_GRID en la transacción SE24. Para ocultar la barra de la herramienta estenra podemos asignar X al campo notoolbar del layout
Utilizamos el método SET_TABLE_FOR_FIRST_DISPLAY para visualizar el ALV por primera vez.
Utilizamos el método REFRESH_TABLE_DISPLAY si se realiza alguna cambio.
Previamente a mostrar el ALV debemos completar el catálogo.
Finalmente en el modulos SALIR_0100 liberamos los objetos.
MODULE salir_0100 INPUT.
…CALL METHOD obj_grilla->free.
…CALL METHOD obj_contenedor->free.
…LEAVE PROGRAM.
ENDMODULE.
LEAVE TO SCREEN xxxx nos envía a una pantalla de selección, esto se usa en programas hibridos, que por ejemplo están en una pantalla de selección y que una vez terminada muestra el ALV, para que el ALV regrese a la pantalla de selección en el botón back se debe implementar LEAVE TO SCREEN no LEAVE PROGRAM o se saldría del programa.
 
 
 
Sobre el autor
Publicación académica de Josep Antoni Lopez Moyano, en su ámbito de estudios para el Máster ABAP POO.
Josep Antoni Lopez Moyano
Profesión: It Manager - Espa?a - Legajo: QP26P
✒️Autor de: 375 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP HCM Nivel Inicial
- Carrera Consultor Basis NetWeaver Nivel Avanzado
- Carrera Consultor Basis NetWeaver Nivel Inicial
- Máster Funcional ABAP
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial