✒️ABAP El ALV Grid Control
ABAP El ALV Grid Control
ALV GRID CONTROL
El sistema SAP nos permita crear controles Z usando objetos ABAP.
ALV_GRID_CONTROL es uno de ellos, muy utilizado en reportes ALV.
Mediante este control tenemos disponibles todas las funciones estándar de la barra de menús y también podemos configurar todas las propiedades del ALV para adaptarlo a nuestras necesidades.
Para crear el ALV utilizaremos 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 para administrar los controles Z y el ALV_GRID_CONTROL, 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 CREACION DEL ALV GRID CONTROL
Creamos el reporte ZPRUEBA_ALV_GRID_OBJETOS y realizaremos las siguientes declaraciones de datos:
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 CATALOGO
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.
En el evento START-OF-SELECTION realizamos la búsqueda de los datos en la tabla ZTABA_USUARIOS.
En el evento END-OF-SELECTION, se llama a la dynpro 0100 que es la que almacenará el ALV.
START-OF-SELECTION.
…PERFORM selección_datos.
END-OF-SELECTION.
…CALL SCREEN 0100.
Crearemos la dynpro 0100 y el Status Gui 0100 con los botones de navegación estándar.
Asignaremos el OK_CODE a la dynpro.
Utilizando el Screen Painter, (Transacción SE80), creamos un Custom Control que servirá de contenedor del ALV.
En la lista de elementos de la dynpro asignamos el nombre CONTENEDRO al custom control.
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.
En el módulo CREAR_OBJETOS_O100 creamos los objetos O_CONTENDERO y O_GRILLA:
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_catalogo.
…CALL METHOD o_grilla->set_table_for_first_display
……CHANGING
………it_outtab = ti_usuarios
………it_fieldcatalgo = ti_catalogo[].
ELSE.
…CALL METHOD o_grilla->refresh_table_display
……EXPORTING
………i_soft_refresh = ‘X’
……EXCEPTION
………finished = 1.
………others = 2.
ENDIF.
ENDMODULE.
NOTA: Si queremos excluir botones del menú que no son necesario para el usuario hay que completar una tabla interna del tipo UI_FUNCTIONS y pasar esta en el parámetro IT_TOOLBAR_EXCLUDING del método SET_TABLE_FOR_FIRST_DISPLAY. Los código de función de los botones que queremos quitar se pueden obtener inspeccionando las constantes de la clase estándar CLGUIALVGRID en la transacción SE24. Para ocultar la barra de herramienta entera podemos asignar X en el campo NOTOOLBAR del layout.
El método SET_TABLE_FOR_FIRST_DISPLAY se usa para visualizar el ALV por primera vez.
El método REFRESH_TABLE_DISPLAY se usa después para visualizar los cambios.
Antes de mostrar el ALV se debe completar el catálogo.
En el módulo SALIR_0100 liberamos los objetos O_CONTENDERO y O_GRILLA y regresamos a la pantalla inicial.
MODULE salir_0100 INPUT.
…CALL METHOD o_grilla->free.
…CALL METHOD o_contenedor->free.
…LEAVE PROGRAM.
ENDMODULE.
LEAVE PROGRAM = Se sale totalmente del programa.
Si lo que tenemos es un programa hibrido, que antes de mostrar la ALV tiene una pantalla de selección, deberíamos utilizar en el botón BACK del ALV LEAVE SCREEN 0 para que regrese a la pantalla de selección.
 
 
 
Sobre el autor
Publicación académica de Josep Antoni Lopez Moyano, en su ámbito de estudios para la Carrera Consultor ABAP.
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