Publicado el 21 de Noviembre del 2018
1.089 visualizaciones desde el 21 de Noviembre del 2018
375,5 KB
45 paginas
Creado hace 15a (21/09/2009)
ALV Grid Control
1-45
L e c c i ó n 1
I n t r o d u c c i ó n
El ALV Grid control (ABAP List Viewer) es una herramienta flexible para mostrar
listas. La herramienta tiene operaciones comunes de las listas como funciones
genéricas y pueden ser redefinidas. Esto permite que el uso de la ALV sirva para
una gran variedad de programas.
Imagen 1. La imagen muestra un ALV con la botonera estándar.
La ALV consta de una barra de herramientas (toolbar), un título y la tabla de salida.
Si el programador así lo desea, se puede ocultar el título y toda o parte de la
toolbar.
1.1 Implementación
Como todos los controles “wrap”, la ALV ofrece métodos globales de clase que
pueden ser usados desde los programas.
ALV Grid Control
2-45
1.2 Integración
Los controles son componentes software que pueden ser instanciados localmente.
Para poder comunicarse con ese componente todos los controles wrap usan
métodos control Framework. En este contexto, las ALV son un caso especial.
La ALV usa controles del menú de SAP para integrarlas en sus funciones estándar.
Ese menú puede ser customizado para los requerimientos individuales de cada
programa.
1.3 Rasgos
Esto es un vistazo a la funcionalidad que la ALV ofrece. Se puede...
Mostrar listados no jerárquicos con un aspecto visual.
Usar funciones típicas como ordenar o filtrar automáticamente si añadir ni
una línea de código más.
Adaptar las funciones predefinidas y sus acciones
Programar acciones habituales por el usuario como el presionar botón
derecho o doble clic en una línea de forma masiva o individual
1.4 Limitaciones
La ALV Grid control no puede mostrar bloques o listas jerárquicas. Las listas han
de ser mostradas en líneas individuales. Permite poder ordenarlas al gusto del
usuario e imprimirlas con ese formato.
ALV Grid Control
3-45
L e c c i ó n 2
I n s t a n c i a d e A L V G r i d C o n t r o l
2.1 Definición
La instancia ha de referirse a la clase cl_gui_alv_grid.
DATA: nonmbre_variable TYPE REF TO cl_gui_alv_grid.
Una instancia de la ALV muestra toda la información en forma de lista en la
pantalla.
Se puede llamar a métodos de esa instancia para redefinir propiedades del control.
2.2 Jerarquía de la clase.
2.3 Integración
La Clase cl_gui_alv_grid contiene también métodos de control específicos y
métodos para el control de la Framework.
ALV Grid Control
4-45
Básicos
L e c c i ó n 3
T r a b a j a r c o n l a A L V G r i d C o n t r o l
El siguiente gráfico muestra los pasos requeridos para mostrar una lista en una
ALV:
Como mínimo se tiene que proveer de los siguientes dos tipos de información para
mostrar los datos.
Una tabla interna con los datos a mostrar, llamada Output table
Una descripción de la estructura de esos datos que han sido declarados en
la ALV, bien con el field catalog o bien con la correspondiente estructura del
diccionario de datos.
Generalmente, la tabla de salida contiene datos que previamente se han
seleccionado de la base de datos.
La referencia de la Output table que se le pasa a la ALV tiene que ser válida
mientras la ALV esté operativa. Ésta puede ser local en el programa o referenciarse
a una estructura global.
El field catalog es una tabla que contiene información referente a los campos que
se van a mostrar en la ALV. Por ejemplo, la ALV usa la tabla para identificar el tipo
ALV Grid Control
5-45
de campo. Se puede usar también para dar un formato especial para una columna
como hacer que se muestren iconos o botones check.
3.1 Trabajar con los controles de la ALV.
Como Resultado de usar objetos ABAP, SAP generó controles programables
consistentes para los siguientes casos:
Crear un control e integrarlo dentro de la pantalla.
Pasar métodos de backend a frontend.
Eventos escuchadores (Handling) y lanzadores (trigger) para controlar el
fronted.
Destrucción del control (control del tiempo de vida).
Para controles básicos (como el control del editor de texto, el visor HTML o el
controlador del visor de imágenes), se puede aplicar el mismo modelo de
programación es aplicable a los susodichos procedimientos.
3.2 Eventos especiales Handling, Aspectos de la ALV Grid
Control
La ALV Grid control usa los controles grid para mostrar la Output table. Por ello,
podemos decir que la ALV Grid control es un wrap que usa los controles básicos de
wrap. La ALV Grid control difiere de los controles básicos en los siguientes
aspectos:
Todos los eventos son registrados en el sistema cuando el control es
instanciado. Si se quiere registrar todos los eventos como eventos de la
aplicación se debe usar el parámetro I_APPL_EVENTS y el método
disptacher CL_GUI_CFW=>DISPATCH en el módulo PAI.
Primeros pasos
Esta sección describe los fáciles pasos que se deben seguir para mostrar una lista
usando una ALV Grid control.
1. Crear una instancia para la ALV Grid control e integrarla en la pantalla
2. Seleccionar los datos que se van a mostrar y pasarlo con la descripción de
los campos que se han usado.
ALV Grid Control
6-45
3.3 Crear un ALV Grid control
1. Declarar las variables para la ALV Grid control y su container. Además,
declarar una tabla interna del tipo que se necesite para mostrar la
información.
DATA: grf_grid
TYPE REF TO cl_gui_alv_grid,
grf_ccontainer
TYPE REF TO cl_gui_custom_container
gt_sflight
TYPE TABLE OF sflight.
2. Crear una pantalla estándar y marcar un área para al contenedor (
).
Asignar a esa área el nombre del container.
3. En el módulo PBO de la misma screen, se debe instanciar el container
control de la ALV Grid control. Usar el parámetro parent para hacer el link
entre el container y la pantalla
IF grf_ccontainer IS INITIAL.
CREATE OBJECT grf_ccontainer
EXPORTING
ALV Grid Control
7-45
CONTAINER_NAME = 'CCCONTAINER'.
CREATE OBJECT GRF_GRID
EXPORTING
I_PARENT = grf_ccontainer.
ENDIF.
Normalmente, se usa el método cl_gui_cfw=>flush para pasar los métodos
llamados en el frontend, pero desde que el Control Framework manda un flush
automático al final del PBO, esto ya no es necesario.
Cuando se inicia el programa, aunque las dos instancias (el contenedor y la ALV) se
generan estas no son visibles.
3.4 Mostrar una lista en la ALV Grid control
Una vez creada la ALV Grid e integrada en la pantalla usando un container, se le
debe pasar los datos y la estructura a la ALV Grid.
1. Llenar la tabla interna con datos:
SELECT * FROM sflight INTO TABLE gt_sflight.
2. Pasar la Output table y la estructura de la a la ALV. Esto se debe hacer una
vez creado el contenedor y la ALV.
CALL MÉTODO grf_grid->set_table_for_first_display
EXPORTING I_ESTRUCTURA_NAME = 'SFLIGHT'
CHANGING IT_OUTTAB = gt_sflight.
En este caso, la estructura proviene del diccionario de datos.
La ALV Grid coge la información de los campos de la tabla SFLIGHT y los
muestra con sus características.
3.5 Programación de aplicaciones específicas.
Los siguientes rasgos de la ALV Grid la hacen muy potente y apta para muchas
aplicaciones.
Las variantes permiten a los usuarios adaptar la salida a sus requerimientos.
Se puede programar que opciones se les muestran y que variante se
muestra al iniciarse.
ALV Grid Control
8-45
Definir y crear funciones propias por aplicación, añadirlas a la botonera
estándar o redefinir las funciones estándar para sus necesidades u ocultar
aquellas que no se deseen.
Se pueden programar funciones Drag & Drop. La ALV Grid permite por
medio de la programación usar funciones Drag & Drop para implementarlas
en aplicaciones gracias a las ALV Grid y otros custom controles.
El formato de la salida y el control de opciones vienen de tres estructuras:
o Field catalog
o Layout
o Print Estructura
3.6 Mostrar variantes.
Con la ayuda de las variantes los usuarios pueden customizar la lista de salida para
satisfacer sus requerimientos. Los parámetros que se usan dentro del método
set_table_for_first_display son: I_SAVE, IS_VARIANT y I_DEFAULT
Modo
Resultado
Valores
Cambiar la
variante
La ALV Grid muestra el icono de la variante
(
) pero no el menú en la toolbar.
Leer
variantes
La ALV Grid muestra el icono de variantes en
la toolbar. El menú contiene sólo funciones
para seleccionar y cambiar la variante.
Leer y
grabar
variantes
La ALV Grid muestra los iconos de las
variantes en el menú de la toolbar. Se puede
seleccionar las variantes existentes, se
pueden cambiar y grabar.
IS_VARIANT = SPACE.
I_SAVE = SPACE.
IS_VARIANT = <estructura
variante>
I_SAVE = SPACE. (o
IS_VARIANT es SPACE y
I_SAVE No SPACE)
IS_VARIANT = <estructura
variante>
I_SAVE = <'X', 'U' o 'A'>
3.7 Grabar variantes.
Objetivo
La función estándar cambia las variantes que pueden ser accesibles para los
usuarios pinchando en los botones de la toolbar. Esos iconos permiten al usuario
ajustar
Comentarios de: ALV Grid Control (0)
No hay comentarios