5.8. - ALV Grid Control
5.8.1. - Introducción al ALV Grid Control
El sistema SAP permite crear controles Z utilizando objetos ABAP. Uno de los controles es el ALV GRID CONTROL, con el que se podrá crear reportes ALV utilizando objetos.
Con este control, se tendrán disponibles todas las funciones estándar de la barra de menús y también se podrá configurar todas las propiedades del ALV para adaptarlo a las necesidades del usuario.
Para crear el ALV, se utilizará un contenedor. Este objeto puede contener otros controles a parte del ALV GRID CONTROL, como Tree Control, SAP Picture Control, SAP Splitter Control, etc.
El contenedor proporciona un área física para la visualización de los objetos. Todos los controles existen dentro de un contenedor. Se utilizarán dos objetos para administrar los controles Z y el ALV GRID CONTROL. Son las clases “CL_GUI_CUSTOM_CONTAINER” y “CL_GUI_ALV_GRID”.
5.8.2. - Pasos para la creación del ALV Grid Control
Se creará el reporte “ZPRUEBA_ALV_GRID_OBJETOS”, con la declaración.
En el evento “START-OF-SELECTION”, se realizará la búsqueda de los datos en la tabla de usuarios. En el evento “END-OF-SELECTION”, se llamará a la dynpro 0100 que es la que almacenará el ALV.
Se creará la dynpro 0100 y el status GUI 0100 con los botones de navegación estándar. Se asignará el OK_CODE a la dynpro. Utilizando el Screen Painter, se creará un Custom Control que servirá de contenedor del ALV.
Luego en la lista de elementos de la dynpro, se asignará el nombre CONTENEDOR al Custom Control.
En la lógica de procesamiento de la dynpro, se crearán los módulos:
En el módulo CREAR_OBJETOS_0100, se crearán los objetos O_CONTENEDOR y O_GRILLA.
Se pueden excluir algunos botones del menú al no ser necesarios para los usuarios. Para excluir estos botones, se debe completar una tabla interna del tipo “UI_FUNCTION” y pasar la tabla interna en el parámetro “it_toolbar_excluding”, correspondiente al método “SET_TABLE_FOR_FIRST_DISPLAY”.
Los códigos de función de los botones que se desean quitar de la barra, se pueden obtener inspeccionando las constantes de la clase estándar “CL_GUI_ALV_GRID”, en la transacción SE24. Para ocultar la barra de herramientas entera, se puede asignar X al campo “NO_TOOLBAR” del layout.
Se utiliza el método “SET_TABLE_FOR_FIRST_DISPLAY” para visualizar el ALV por primera vez. Luego, si se realiza algún cambio, se utilizará el método “REFRESH_TABLE_DISPLAY”. Antes de mostrar el ALV, se debe completar el catálogo.
Por último, en el módulo “SALIR_0100”, se liberan los objetos O_CONTENEDOR y O_GRILLA, para volver a la pantalla inicial.
Si se ejecuta el reporte, la pantalla que aparecerá será