![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP El ALV Grid Control
ABAP El ALV Grid Control
![ABAP El ALV Grid Control ABAP El ALV Grid Control](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/73.jpg)
El Sistema SAP permite crear controles Z utilizando objetos ABAP. Uno de los controles de los que hablamos es el ALV GRID CONTROL con el cual podremos crear reportes ALV utilizando objetos.
Con este 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 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.
Contenedor: Es un objeto estándar de SAP que está representado por la clase
CL_GUI_CUSTOMER_CONTAINER y proporciona el área física para la visualización de los objetos.
Utilizaremos dos objetos para administrar los controles Z y el ALV Grid Control. Ellos son las clases:
- CL_GUI_ALV_GRID.
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
Crearemos el reporte XXXXX 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 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.
En el evento START-OF-SELECTION realizaremos la búsqueda de los datos en la tabla ZTABLA_USUARIOS.
En el evento END-OF-SELECTION se llamara a la dynpro 0100 que es la que almacenara 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_CODEa la dynpro.
Utilizando el Screen Painter, a través de la transacción SE80. crearemos un Custom Control que servirá como contenedor de nuestro ALV.
Luego en la lista de elementos de la dynpro asignaremos el nombre CONTENEDOR 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_ONJETOS_0100 crearemos los objetos o contenedor o grilla
En el reporte podemos querer excluir botones estándar que no son necesarios, para ello debemos completar una tabla interna del tipo UI_FUNCTIONS y pasar esta tabla interna en el parámetro IT_TOOLBAR_EXCLUDINGcorrespondiente al método SET_TABLE_FOR_FIRST_DISPLAY los códigos de función de los botones que deseamos quitar de la barra, se pueden obtener inspeccionando las constantes de la clase estándarCL_GUI_ALV_GRID en la transacción SE24, para ocultar la barra de herramientas entera podemos asignar X al campo NOW_TOOLBAR del Layout.
Utilizamos el método SET_TABLE_FOR_FIRST_DISPLAY para visualizar el ALV por primera vez. Luego si se realiza algún cambio al mismo utilizamos el método REFRESH_TABLE_DISPLAY. Previamente a mostrar el ALV debemos completar el catalogo.
Finalmente en el módulo SALIR_0100 liberamos los objetos O_CONTENEDOR y O_GRILLA y volvemos a la pantalla inicial.
Audio:
Cuando trabajamos con el control ALV Grid Control nos puede suceder que, sea conveniente crear una pantalla de selección tal como la que creamos en los reportes clásicos y luego en base a parámetros introducidos en pantalla por el usuario se llame mediante la sentencia CALL SCREEN a diferentes Dynpros, el programa que estamos creando sería un Hibrido entre un reporte clásico y un programa de dialogo, si nos encontramos en dicha situación y realizamos un CALL SCREEN a la Dynpro 0100 y deseamos que al presionar el botón BACK el programa regrese a la pantalla de selección entonces en el código correspondiente al botón BACK debemos ejecutar la sentencia LEAVE TO SCREEN 0 en lugar de LEAVE PROGRAM
 
 
 
Sobre el autor
Publicación académica de Carlos Alberto Carreira, en su ámbito de estudios para la Carrera Consultor ABAP.
Carlos Alberto Carreira
Profesión: Consultor Técnico en Jde W.s. - Argentina - Legajo: KC15G
✒️Autor de: 92 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
🎓Egresado de los módulos:
Certificación Académica de Carlos Carreira