ALV Grid Control 1-45

Anuncio
ALV Grid Control
1-45
Lección 1
Introducció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
Lección 2
Instancia de ALV Grid Control
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
Lección 3
Trabajar con la ALV Grid Control
Básicos
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
Cambiar la La ALV Grid muestra el icono de la variante
variante
( ) pero no el menú en la toolbar.
Valores
IS_VARIANT = SPACE.
I_SAVE = SPACE.
Leer
variantes
IS_VARIANT = <estructura
La ALV Grid muestra el icono de variantes en variante>
la toolbar. El menú contiene sólo funciones
I_SAVE = SPACE. (o
para seleccionar y cambiar la variante.
IS_VARIANT es SPACE y
I_SAVE No SPACE)
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 = <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 el formato de la ALV a sus requerimientos durante la vida del programa.
El desarrollador determina si los usuarios pueden guardar las variantes y definir si
las opciones están disponibles.
ALV Grid Control
9-45
Requisitos previos
Con los parámetros por defecto, los usuarios pueden grabar variables como sus
variables por defecto. Si existe ya una variable por defecto, ésta es la que se lee
cuando el método set_table_for_first_display se instancia. Si no se quiere permitir
que los usuarios creen variables por defecto, el parámetro I_DEFAULT = SPACE.
Si el parámetro I_DEFAULT = SPACE se puede hacer que se cargue una variante
usando el módulo de funciones LVC_VARIANT_DEFAULT_GET.
Pasos a seguir
1. Declarar la variable para determinar las opciones de grabar que están
disponibles para el usuario y una estructura para identificar la variante.
DATA: X_SAVE
TYPE c, " Parámetro I_SAVE
GV_VARIANT
TYPE DISVARIANT. " Parámetro
IS_VARIANT
2. La estructura tipo DISVARIANT debe contener como mínimo el “report
ID”.
GV_REPID = SY-REPID.
GV_VARIANT-REPORT = GV_REPID.
3. Determinar las opciones de grabado disponibles para el usuario
X_SAVE = 'U'. " Las variantes sólo pueden ser grabadas para su
usuario
4. Pasar
las
variables
en
la
llamada
al
método
set_table_for_first_display:
CALL MÉTODO GRID1->set_table_for_first_display
EXPORTING I_ESTRUCTURA_NAME = 'SFLIGHT'
IS_VARIANT
= GV_VARIANT
I_SAVE
= X_SAVE
CHANGING IT_OUTTAB
ALV Grid Control
= GT_SFLIGHT.
10-45
Si se pasa sólo el actual parámetro IS_VARIANT, los usuarios sólo pueden
leer variantes pero no grabar nuevas. Si se usa el parámetro I_SAVE se
necesita pasar una variante con la estructura IS_VARIANT.
Resultado
La toolbar ahora incluye en el menú la opción de que los usuarios lean y graben
variantes. Dependiendo del valor del parámetro I_SAVE se puede:
Opciones para el parámetro I_SAVE
I_SAVE = SPACE
Las variantes no pueden ser grabadas.
I_SAVE = 'U'
Sólo se pueden acceder a las variantes del usuario.
I_SAVE = 'X'
Sólo se pueden grabar variables globales.
I_SAVE = 'A'
Tanto las variantes globales como las de usuario pueden ser
grabadas.
3.8 Integración de las funciones definidas
La ALV Grid tiene funciones estándar para la edición de listas. Los usuarios pueden
acceder a esas funciones con la toolbar o el menú. Para integrar funciones propias
se puede:
ƒ
Reemplazar las funciones existentes por funciones redefinidas.
ƒ
Añadir nuevas funciones a la toolbar o el menú.
Se puede también ocultar o deshabilitar funciones que no se necesiten.
3.9 Excepciones de salida.
Objetivo
Las excepciones son gráficos que indica que, un valor ha pasado de un rango en
línea de la lista. Por ejemplo, si usamos el modelo de un aeropuerto, se puede usar
un semáforo en rojo para indicar que un vuelo está lleno. Los colores diferentes
ayudan al usuario a comprender rápidamente el estatus de la capacidad. Se puede
utilizar tres estatus diferentes:
Display Valor interno
3
ALV Grid Control
Significado (por Ejemplo)
Baja ocupación
11-45
2
Media/alta ocupación (situación crítica)
1
Alta ocupación (sin asientos libres)
Se puede lanzar una excepción como un led.
Los desarrolladores son los que deben determinar el rango de valores y el valor
para dicha excepción.
Pasos a seguir
1. Definir el layout del tipo LVC_S_LAYO:
DATA gs_layout TYPE LVC_S_LAYO.
2. Añadir una variable de tipo c a la Output table como se muestra en el
ejemplo.
DATA: BEGIN OF GT_OUTTAB OCCURS 0.
INCLUDE ESTRUCTURA <DDIC-Struktur>.
DATA: light TYPE C. "Muestra exceptions
DATA: END OF GT_OUTTAB.
3. Asignar al campo EXCP_FNAME el nombre de la excepción.
4. Si se desea mostrar la excepción como un led debe asignar el campo
EXCP_LED al layout.
5. Haga un loop y compruebe el valor de la excepción, dependiendo de él
asigne los valores 1, 2, ó 3 para mostrar los semáforos.
6. Pasar
el
layout
y
la
Output
table
usando
el
método
set_table_for_first_display.
Para actualizar los datos en caso de que hayan cambiado, usar el método
refresh_table_display.
ALV Grid Control
12-45
Resultado
La ALV Grid muestra una columna de excepción como se muestra en el gráfico.
3.10 Conversión Exit
Objetivos
Se usan los conversión exist para definir un salto a una rutina de conversión de una
columna de la Output table. La conversión es implementada usando WRITE con
USING EDIT MASK
Requisitos previos
Para que la
ALV Grid pueda hacer una conversión, ella debe saber la longitud
interna y externa del campo, o lo que es lo mismo, la longitud antes y después de
la conversión como se ve en el ejemplo.
DATA TIME TYPE T VALUE '154633'.
WRITE (8) TIME USING EDIT MASK '__:__:__'. "Output: 15:46:33
En este ejemplo la longitud interna es de seis caracteres pero la salida es de ocho.
Pasos a seguir
ALV Grid Control
13-45
1. Declarar la longitud interna y externa del campo de la ALV Grid.
o
Para campos con referencia al Data Dictionary la ALV Grid usa
automáticamente la longitud interna y externa.
o
Para campos no referenciados, se debe especificar usando los
campos INTLEN para la longitud interna y DD_OUTLEN para
la longitud externa en el field catalog.
2. Especificar la conversión usando el campo EDIT_MASK del field catalog.
3. Llamar al método set_table_for_first_display pasándole el field catalog.
Resultado
Los valores de las columnas son convertidas antes de que se muestren.
ALV Grid Control
14-45
Lección 4
Métodos de la clase CL_GUI_ALV_GRID
4.01 Métodos Básicos
Método
Aplicación
CONSTRUCTOR
Genera una instancia de la ALV Grid.
set_table_for_first_display
Muestra una Output table en el container.
refresh_table_display
Refresca los datos de la ALV.
4.02 Elementos de la ALV Grid
Método
Aplicación
get_current_cell
Coge el índice y propiedades de una celda.
set_current_cell_via_id
Posiciona el cursor en una celda específica.
get_scroll_info_via_id
Coge la posición del scrool.
set_scroll_info_via_id
Posiciona el scroll en una posición.
get_selected_cells
Coge la posición y la información de una celda
que haya sido seleccionada.
get_selected_columns
Coge el nombre de las columnas seleccionadas.
get_selected_rows
Coge el índice de las filas seleccionadas.
set_selected_rows
Selecciona filas.
4.03 Layout y Estructuras
Método
Aplicación
get_frontend_field_catalog
Coge el actual field catalog de la pantalla.
set_frontend_field_catalog
Pone un field catalog en la pantalla.
get_frontend_layout
Coge el layout de la pantalla.
set_frontend_layout
Pone un layout en la pantalla.
Set_3d_border
Habilita (o no) el borde en 3D de la ALV Grid
4.04 Funciones genéricas
Método
ALV Grid Control
Aplicación
15-45
get_filtered_entries
Coge índices de las filas que no han sido
mostradas debido a un filtro
get_filter_criteria
Coge las propiedades del filtro activo
set_filter_criteria
Pone filtro en las columnas
get_sort_criteria
Coge la ordenación actual
set_sort_criteria
Aplica una ordenación
get_variant
Coge la variante actual
set_user_command
Cambia la función para el user_command
4.05 CONSTRUCTOR
Este método se llama automáticamente si se crea un objeto de la clase
CL_GUI_ALV_GRID.
Definición del método
CREATE OBJECT <nb_alv CL_GUI_ALV_GRID>
EXPORTING
i_shellstyle = <var. de tipo I>
i_lifetime = <var. de tipo I>
i_parent = <ref. var. CL_GUI_CONTAINER>
i_appl_events = <var. de tipo CHAR01>.
Parámetro
Significado
I_appl_events
Si este parámetro está activo, la ALV Grid registra los eventos
como eventos de aplicación, si no está activo, todos los
eventos se registran en el sistema.
4.06 GET_CURRENT_CELL
Se utiliza este método para coger el valor y las propiedades de la celda en la que el
cursor está posado. Si es una columna es seleccionada y no una celda, la ALV
indica que la fila es 0 y devuelve sólo la información específica de la columna.
La ALV Grid devuelve dos filas y columnas índices: una que referencia en la Output
table y otra referente a la posición que muestra la ALV.
Definición del método
CALL MÉTODO <ref.var. CL_GUI_ALV_GRID>->get_current_cell
ALV Grid Control
16-45
IMPORTING
E_ROW = <var. de tipo I>
E_VALUE = <var. de tipo C>
E_COL = <var. de tipo I>
ES_ROW_ID = <estructura de tipo LVC_S_ROW>
ES_COL_ID = <estructura de tipo LVC_S_COL>.
Parámetro
Significado
E_ROW
Fila índice de la celda seleccionada en la ALV
E_VALUE
Valor de la celda seleccionada
E_COL
Índice de la columna seleccionada en la ALV
ES_ROW_ID
Estructura con la información de la fila índice seleccionada de
la Output table en la ALV
ES_COL_ID
Estructura
con
la
información
de
la
columna
índice
seleccionada de la Output table en la ALV
4.07 GET_FRONTEND_FIELD CATALOG
Coge el field catalog actual. Este método se usa si se desea modificar el field
catalog para, por ejemplo ocultar o mostrar alguna de las columnas.
Definición del método
CALL MÉTODO
<ref.var.CL_GUI_ALV_GRID>->get_frontend_field catalog
IMPORTING
ET_field catalog = <tabla interna de tipo LVC_T_FCAT>.
Parámetro
ET_field catalog
Significado
Estructura con la descripción de la Output table
4.08 GET_FRONTEND_LAYOUT
Coge el actual layout.
Definición del método
CALL MÉTODO <ref.var.CL_GUI_ALV_GRID>->get_frontend_layout
IMPORTING
ALV Grid Control
17-45
ES_LAYOUT = <estructura de tipo LVC_S_LAYO>.
Parámetro
Significado
ES_layout
Contiene campos para hacer totales, excepciones, colores, Drag &
Drop e interactuar con otros elementos.
4.09 GET_SELECTED_CELLS
Coge las celdas seleccionadas. Devuelve el nombre de la columna y el índice de la
fila.
La ALV Grid devuelve los índices sólo en caso de que sea una celda individual la que
está seleccionada. En caso de ser una fila o columna entera lo que está
seleccionado se devuelve un valor vacío.
Requisitos previos
Se debe activar el modo “cell selection” para permitir al usuario seleccionar celdas
sueltas (y celdas múltiples usando la tecla Ctrl). Para conseguir esto, en la llamada
al método set_table_for_first_display se le debe pasar la layout.
Definición del método
CALL MÉTODO <ref.var.CL_GUI_ALV_GRID>->get_selected_cells
IMPORTING
ET_CELL = <tabla interna de tipo LVC_T_CELL>.
Parámetro
Significado
ET_CELL
Tabla con información de la celda seleccionada
4.10 GET_SELECTED_ROWS
Devuelve el índice de las filas seleccionadas
•
La primera fila es la 1.
•
Si sólo se ha seleccionado columnas la ALV Grid devuelve una tabla
vacía.
•
Si se han seleccionado filas múltiples la tabla normalmente viene
ordenada por el índice en orden ascendente y no por orden de
selección.
ALV Grid Control
18-45
Requisitos previos
Para permitir a los usuarios seleccionar filas múltiples, el campo sel_mode de la
layout debe contener el valor 'A', 'C' o 'D'
Definición del método
CALL MÉTODO <ref.var.CL_GUI_ALV_GRID>->get_selected_rows
IMPORTING
ET_INDEX_ROWS = <tabla interna de tipo LVC_T_ROW>.
Parámetro
Significado
ET_INDEX_ROWS
Tabla con los índices de las filas seleccionadas
4.11 GET_VARIANT
Devuelve la variante actual.
Requisitos previos
La variante actual ha debido ser grabada antes de llamar al método. Para ello, en la
llamada
al
método
set_table_for_first_display
los
parámetros
I_SAVE
y
IS_VARIANT deben contener los valores correctos.
Definición del método
CALL MÉTODO <ref.var.CL_GUI_ALV_GRID>->get_variant
IMPORTING
ES_VARIANT = <estructura de tipo DISVARIANT>.
Parámetro
Significado
ES_VARIANT
Estructura con información de la variante actual.
4.12 REFRESH_TABLE_DISPLAY
El siguiente método se usa para refrescar los datos de la ALV y poder mostrar los
cambios efectuados.
Definición del método
ALV Grid Control
19-45
CALL MÉTODO <ref.var.CL_GUI_ALV_GRID>->refresh_table_display
EXPORTING
IS_STABLE = <estructura de tipo LVC_S_STBL>
I_SOFT_REFRESH = <variable de tipo CHAR01>.
Parámetro
Significado
IS_STABLE
Si se indica los valores de la fila y columna el scrool se
posiciona sobre ellos.
I_SOFT_REFRESH Este parámetro se usa en casos excepcionales. Si se activa
este parámetro la ordenación, filtros y demás cambios hechos
por el usuario desaparecerán.
IT_FILTER
Tabla con las características del filtro
4.13 SET_FRONTEND_FIELD CATALOG
Asigna un field catalog a la ALV. Después de usar este método se debe refrescar de
la ALV usando, por ejemplo el método refresh_table_display.
Requisitos previos
Se debe rellenar el field catalog con el método get_fronted_field catalog o de forma
semi-automática antes de llamarla.
Definición del método
CALL MÉTODO <ref.var.CL_GUI_ALV_GRID>->set_frontend_field catalog
EXPORTING
IT_field catalog = <tabla interna de tipo LVC_T_FCAT>.
Parámetro
Significado
IT_field catalog
Descripción de los atributos de las columnas de la
Output table
Restricciones
En este método la ALV Grid no tiene acceso al Data Dictionary, por ello no es
posible crear referencias del diccionario, por ejemplo para copiar literales de
campos guardados en el diccionario como texto de columnas.
ALV Grid Control
20-45
4.14 SET_FRONTEND_LAYOUT
Fija un layout para el ALV actual. Después de usarse, se debe usar el método
refresh_table_display para que los cambios se reflejen.
En la layout se determinan las propiedades de la ALV. Usando en el método
set_table_for_first_display
el
parámetro
IS_LAYOUT
se
obtiene
idénticos
resultados.
Definición del método
CALL MÉTODO <ref.var.CL_GUI_ALV_GRID>->set_frontend_layout
EXPORTING
IS_LAYOUT = <estructura de tipo LVC_S_LAYO>.
Parámetro
Significado
IS_LAYOUT
Estructura con propiedades de los campos como excepciones,
Drag & Drop y otras interacciones con elementos.
4.15 SET_SELECTED_CELLS
Marca como seleccionas celdas de la ALV. Cualquier otra selección que se hubiera
hecho con anterioridad desaparece al ser llamado este método.
Definición del método
CALL MÉTODO <ref.var.CL_GUI_ALV_GRID>->set_selected_cells
EXPORTING
IT_CELLS = <Tabla de tipo LVC_T_CELL>.
Parámetro
Significado
IT_CELLS
Tabla con las celdas que son seleccionadas. Las filas se
rellenan con una estructura tipo LVC_S_COL, en la que se le
indica la columna y la fila de la celda.
4.16 SET_SELECTED_COLUMNS
Marca como seleccionadas columnas de la ALV. Cualquier otra selección que se
hubiera hecho con anterioridad desaparece al ser llamado este método.
Definición del método
ALV Grid Control
21-45
CALL MÉTODO <ref.var.CL_GUI_ALV_GRID>->set_selected_columns
EXPORTING
IT_COL_TABLE = <table de tipo LVC_T_COL>.
Parámetro
Significado
IT_COL_TABLE
Tabla con el nombre de las columnas que son seleccionadas.
4.17 SET_SELECTED_ROWS
Marca como seleccionadas filas de la ALV. La primera fila es la fila 1. Cualquier otra
selección que se hubiera hecho con anterioridad desaparece al ser llamado este
método.
Definición del método
CALL MÉTODO <ref.var.CL_GUI_ALV_GRID>->set_selected_rows
EXPORTING
IT_INDEX_ROWS = <tabla interna de tipo LVC_T_ROW>.
Parámetro
Significado
IT_INDEX_ROWS Tabla con índices de las filas seleccionadas
4.18 SET_SORT_CRITERIA
Fija el criterio de ordenación por columnas. Para que surta efecto se ha de llamar
después al método refresh_table_display.
Definición del método
CALL MÉTODO <ref.var.CL_GUI_ALV_GRID>->set_sort_criteria
EXPORTING
IT_SORT = <tabla interna de tipo LVC_T_SORT>.
Parámetro
Significado
IT_SORT
Se define una columna por registro.
4.19 SET_TABLE_FOR_FIRST_DISPLAY
ALV Grid Control
22-45
Muestra una Output table en la ALV. En la llamada se puede especificar cualquier
referencia del Data Dictionary o field catalog. Antes de su ejecución se pueden usar
parámetros opcionales para leer por ejemplo variantes, criterios de ordenación,
filtros y definir propiedades del ALV.
Si se desea refrescar los valores mostrados en la Output table, se usa el método
refresh_table_display. El método set_table_for_first_display sólo se debe volver
a llamar en caso de que la estructura del Output table haya cambiado.
Requisitos previos
La
Output table debe estar definida globalmente o ser un atributo público de la
clase.
Definición del método
CALL MÉTODO <ref.var.CL_GUI_ALV_GRID>->set_table_for_first_display
EXPORTING
I_ESTRUCTURA_NAME = <string de tipo DD02L-TABNAME>
IS_VARIANT = <estructura de tipo DISVARIANT>
I_SAVE = <var. de tipo CHAR01>
I_DEFAULT = <var. de tipo CHAR01>
IS_LAYOUT = <estructura de tipo LVC_S_LAYO>
IS_PRINT = <estructura de tipo LVC_S_PRNT>
IT_SPECIAL_GROUPS = <tabla interna de tipo LVC_T_SGRP>
IT_TOOLBAR_EXCLUDING = <tabla interna de tipo UI_FUNCTIONS>
CHANGING
IT_OUTTAB = <tabla interna>
IT_field catalog = <tabla interna de tipo LVC_T_FCAT>
IT_SORT = <tabla interna de tipo LVC_T_SORT>
IT_FILTER = <tabla interna de tipo LVC_T_FILT>
Parámetro
Significado
I_ESTRUCTURA_NAME
Nombre del Data Dictionary para la Output table. Si se
especifica este parámetro la field catalog se genera
automáticamente.
ALV Grid Control
23-45
IS_VARIANT
Determina la variante para mostrar la Output table. Si
se usa este parámetro se debe rellenar por lo menos el
campo REPORT.
I_SAVE
Determina las opciones disponibles para que el usuario
guarde variantes.
I_DEFAULT
o
‘X’: sólo globales
o
‘U’: sólo específico del usuario
o
‘A’: opciones ‘X’ ‘U’ a la vez.
o
‘ ‘: no se puede grabar.
Determina si un usuario puede determinar variantes
por defecto.
o
‘X’ : Está permitido.
o
‘ ‘ : No está permitido.
Si las variantes por defecto están permitidas y
si
existe alguna definida, si no se indica lo contrario en el
parámetro IS_VARIANT se muestra la variante por
defecto de forma automática.
IS_LAYOUT
Determina las propiedades de la ALV.
IS_PRINT
Parámetro para imprimir en backend
IT_SPECIAL_GROUPS
Si en la field catalog las columnas que se agrupan por
el campo SP_GROUP se le deben de pasar la tabla con
los textos de ese grupo. En la pantalla de variantes, es
posible usar un list box para restringir columnas en la
selección de esos grupos.
IT_TOOLBAR_EXCLUDING
Contiene el código de los botones y funciones que se
quieren excluir en la toolbar. Los códigos de las
funciones son atributos constantes y empiezan por
MC_FC_.
IT_OUTTAB
Output table con datos a mostrar
IT_field catalog
Determina la estructura de la Output table y el formato
de los datos que van a ser mostrados
IT_SORT
Tabla con las propiedades de ordenación inicial.
IT_FILTER
Tabla con las propiedades del filtro que se aplica
inicialmente.
ALV Grid Control
24-45
Lección 5
Eventos de la clase CL_GUI_ALV_GRID
La sección trabajando con la ALV Grid control describe puntos especiales que se
deben considerar para trabajar con los eventos de la clase.
5.01 Textos de salida definidos por usuario
Evento
Aplicación
print_end_of_list
Define el texto que aparecerá al final de la lista.
print_top_of_list
Define el texto que imprimirá en la cabecera.
print_end_of_page
Define el texto que se imprimirá en el pie de cada página.
print_top_of_page
Define el texto que aparecerá en la cabecera de cada página
subtotal_text
Define un texto para los subtotales.
5.02 Controles del ratón (Acciones en la ALV)
Evento
Aplicación
double_click
Pinchar dos veces en una celda
hotspot_click
Pinchar una vez en una celda declarada hots_pot.
5.03 DOUBLE_CLICK
Se activa el evento con el doble-click encima de una celda
Evento
Significado
E_ROW TYPE REF TO LVC_S_ROW
Estructura con el índice de la fila
E_COLUMN TYPE REF TO LVC_S_COL Estructura con el índice de la columna
5.04 HOTSPOT_CLICK
Se activa cuando en una celda hotspot (aparece una mano en el puntero del ratón
al pasar sobre ella) se hace click.
ALV Grid Control
25-45
Requisitos previos
Para habilitar a los usuarios una columna con hotspot, hay que hacer lo siguiente:
ƒ
Campo hotspot del field catalog para columnas solas
ƒ
Campo keyhot del layout para todos los “key fields” del Output table
Parámetro
Significado
E_ROW_ID TYPE REF TO LVC_S_ROW
Estructura con índice de fila
E_COLUMN_ID TYPE REF TO LVC_S_COL
Estructura con el nombre de la
columna
5.05 PRINT_END_OF_LIST
Evento que imprime un texto al final del listado.
5.06 PRINT_END_OF_PAGE
Evento que imprime un texto al final de cada página (Pie de página).
Requisitos previos
Para que exista pie de página se ha de reservar líneas de la página para ello usando
el campo reservelns de la estructura lvc_s_prnt que se le pasa al método
set_table_for_first_display.
5.07 PRINT_TOP_OF_LIST
Evento que imprime un texto en la cabecera. Evento que se ejecuta sólo una vez y
es antes del print_top_of_page. El campo usado es el gris_title del layout.
5.08 PRINT_TOP_OF_PAGE
Evento que imprime un texto en la cabecera de cada página de la impresión.
5.09 SUBTOTAL_TEXT
ALV Grid Control
26-45
Evento que muestra un texto para los subtotales de columnas.
Parámetro
Significado
ES_SUBTOTTXT_INFO
Type LVC_S_STXT
Estructura con información del criterio para hacer el
subtotal.
EP_SUBTOT_LINE
Type Ref To DATA
Variable de referencia para insertar un subtotal en la
grid. Las columnas para las que la suma no fue
calculada se quedan con el valor inicial.
E_EVENT_DATA
Type Ref To
CL_ALV_EVENT_DATA
El atributo M_DATA de este objeto hace referencia al
texto del subtotal.
Ejemplo
Mostrar una tabla con la estructura SFLIGHT
en una ALV, y que aparezcan los
subtotales.
1. Definir e implementar un evento handler para el evento subtotal_text.
Registrar el evento con SET HANDLER
2. Llamar a la subrutina con este método y pasar los parámetros
3. Los parámetros ep_subtot_line y e_event_data contienen referencia a
variables tipo DATA, por eso se deben usar field symbols.
FORM Método_subtotal_text
USING es_subtottxt_info TYPE lvc_s_stxt
ep_subtot_line
TYPE REF TO data
e_event_data
TYPE REF TO cl_alv_event_data.
DATA ls_sflight LIKE sflight.
FIELD-SYMBOLS:
<fs1> STRUCTURE sflight DEFAULT ls_sflight,
<fs2>.
IF es_subtottxt_info-criteria = 'PLANETYPE'.
ASSIGN ep_subtot_line->* TO <fs1>.
ASSIGN e_event_data->m_data->* TO <fs2>.
CONCATENATE es_subtottxt_info-keyword ': '
ALV Grid Control
27-45
<fs1>-planetype INTO <fs2>.
ENDIF.
ENDFORM. " MÉTODO_SUBTOTAL_TEXT
5.10 TOOLBAR
Evento que la ALV provoca cada vez que el control toolbar tiene que ser
regenerado.
Para añadir funciones propias, se debe instanciar el método set_toolbar_interactive
y escribir un método handler.
Se puede ocultar la toolbar en su totalidad rellenado el campo no_toolbar del
layout.
Parámetro
Significado
E_OBJECT Type Ref To
CL_ALV_EVENT_T
OOLBAR_SET
El objeto contiene sólo un atributo con la tabla de
funciones de la toolbar.
E_INTERACTIVE
Type CHAR01
Si la “bandera” está activa, se provoca el método
usando set_toolbar_interactive. Sino, el evento es
provocado por ALV Grid.
ALV Grid Control
28-45
Lección 6
Field Catalog
6.01 Definición
El Field Catalog es una tabla del tipo LVC_T_FCAT que contiene información de los
campos que van a ser mostrados. La ALV usa la tabla para, por ejemplo, saber el
tipo de campo a mostrar.
Se usan los campos del field catalog para determinar el formato y las propiedades
de las columnas de la lista que se va a mostrar en la ALV.
En casos excepcionales, no es necesario pasar el field catalog (en la generación del
field catalog automática).
6.02 Estructura
El field catalog contiene más de 60 campos, algunos de ellos sólo son usados de
forma interna.
6.03 Integración
Generalmente, se recomienda rellenar los campos del field catalog antes de mostrar
la ALV por primera vez y utilizar después el método set_table_for_first_display.
Para ajustar el field catalog generado por el ALV para un requerimiento especial
antes de mostrarlo se usa el módulo de funciones VC_field catalog_MERGE.
Los métodos get_fronted_field catalog y set_fronted_field catalog se usan para
cambiar el field catalog después de haber sido mostrado.
ALV Grid Control
29-45
6.04 Generar el field catalog
Básicamente se necesita un field catalog por cada listado que se muestra usando un
ALV Grid. Se puede generar de las siguientes formas:
•
Automáticamente usando una estructura del Data Dictionary.
•
Manualmente en un programa ABAP.
•
Semi-automáticamente combinando las dos opciones anteriores.
6.05 Generar el field catalog automáticamente
Objetivos
Si la estructura del Output table corresponde a una estructura almacenada en el
Data Dictionary (DDic) la ALV Grid puede usar esta información y generar
automáticamente el field catalog. En este caso todos los campos de esa estructura
del Data Dictionary son mostrados en la ALV.
Pasos a seguir
Pasar la estructura al ALV Grid.
1. Referenciar la estructura con LIKE o INCLUDE STRUCTURE .
Si se usa INCLUDE STRUCTURE se puede generar parte automáticamente y
otra manual añadiendo el resto de campos.
2. Pasar la estructura al método set_table_for_first_display con el parámetro
I_STRUCTURE_NAME.
Si no se desea añadir más campo a la estructura o si se desea ocultar campos
específicos, no se necesitar pasar el field catalog.
ALV Grid Control
30-45
6.06 Generar el field catalog de forma manual
Objetivos
Se puede dar el caso de que los datos a mostrar no aparecen ni parcialmente en las
estructuras del Data Dictionary. Entonces se deben rellenar los campos del field
catalog.
Pasos a seguir
El field catalog está definido en el Data Dictionary como una tabla del tipo
LVC_T_FCAT. Cada fila del field catalog corresponde a un campo del Output table.
Dependiendo de cuantos campos estén en el Data Dictionary se deben rellenar por
lo menos los siguientes campos:
Con referencia al Data Dictionary
Campo
Descripción
FIELDNAME
Nombre del campo en la tabla interna.
REF_TABNAME
Nombre de la estructura del DDIC.
REF_FIELDNAME Nombre del campo de la estructura del DDIC (solo es necesario
si el nombre del campo de la tabla interna es distinto al del
DDIC).
Sin referencia al Data Dictionary
Campo
Descripción
FIELDNAME
Nombre del campo en la tabla interna.
INTTYPE
Tipo ABAP del campo de la tabla.
OUTPUTLEN
Ancho de la columna
COLTEXT
Cabecera de la columna
SELTEXT
Descripción de la columna para la selección de variantes.
ALV Grid Control
31-45
6.07 Generar el field catalog Semi-Automáticamente.
Objetivos
Cuando
se
genera
el
field
catalog
semi-automáticamente,
se
combina
la
información del Data Dictionary con información propia. Se puede:
•
Modificar o
•
Añadir descripciones de nuevos campos por ejemplo, el método es bueno
para, por ejemplo los siguientes casos:
o
Mostrar una tabla del Data Dictionary pero sin sacar todos los
campos (usando el campo NO_OUT).
o
Mostrar filas adicionales que contienen iconos u otra información.
Pasos a seguir
Para generar el field catalog de forma semi-automáticamente:
1. Declarar una tabla interna de tipo LVC_T_FCAT.
2. Llamar al módulo de funciones LVC_field catalog_MERGE y pasarle la
estructura del Data Dictionary de la estructura del Output table y tabla
interna que hace de field catalog. La función genera el field catalog.
3. Leer las filas que se deseen cambiar y adaptarlas a los requerimientos
específicos. Si la Output table contiene más campos que están en el Data
Dictionary se pueden añadir usando una fila nueva por cada campo en el
field catalog.
ALV Grid Control
32-45
Para mostrar el Output table hay que llamar al método set_table_for_first_display
pasándole el field catalog.
6.08 Campos del field catalog
Unidades de moneda y medida
Campo
Descripción
CFIELDNAME
Nombre del Campo de la moneda
CURRENCY
moneda
QFIELDNAME
Campo con el nombre de la unidad de medida de referencia.
QUANTITY
Unidad de medida
Formato de la columna
Campo
Descripción
COL_POS
Posición de una columna
DO_SUM
Cálculo del total
EMPHASIZE
Color de la columna
HOTSPOT
Aparece una mano y hace que reaccione con un solo clic
KEY
Columna clave
NO_OUT
No se muestra la columna.
NO_SUM
No se permite un sumatorio.
OUTPUTLEN
Anchura de la columna en caracteres.
Texto
Campo
Descripción
COLDDICTXT
Definición del Data Dictionary.
COLTEXT
Etiqueta de la columna para las funciones.
REPTEXT
Texto de la cabecera correspondiente al Data Dictionary.
SCRTEXT_L
Texto largo del elemento del Data Dictionary.
SCRTEXT_M
Texto mediano del elemento del Data Dictionary.
SCRTEXT_S
Texto corto del elemento del Data Dictionary.
SELDDICTXT
Texto definido en referencia al Data Dictionary.
SELTEXT
Etiqueta de la columna.
TIPDDICTXT
Texto de referencia del Data Dictionary.
ALV Grid Control
33-45
Parámetros para los campos sin referencia al Data Dictionary
Campo
Descripción
DD_OUTLEN
Anchura en caracteres del campo.
INTLEN
Longitud interna en bytes
INTTYPE
Tipo ABAP (C,D,N,...)
Formato de la columna (Contenido)
Campo
Descripción
DECIMALS_O
Número de decimales.
DECMLFIELD
Campo con especificación de decimales.
EDIT_MASK
Máscara para la salida de datos (conversión)
EXPONENT
Exponente para la representación con coma flotante
NO_SIGN
Mostrar sin signo
NO_ZERO
Suprimir los ceros.
ROUND
Redondear valores
ROUNDFIELD
Campo con especificación para el redondeo de valores
SYMBOL
Mostrar como un símbolo
Otros campos
Campo
Descripción
REPREP
Valores para el criterio de selección.
SP_GROUP
Grupo de teclas.
TXT_FIELD
Nombre de la tabla interna.
Referencia de la Output table
Campo
Descripción
FIELDNAME
Nombre del campo de la tabla interna.
ALV Grid Control
34-45
Referencia al
Data Dictionary
Campo
Descripción
REF_FIELD
Referencia al nombre del campo de la tabla interna
REF_TABLE
Referencia al nombre de la tabla interna.
Referencia al Output table
Campo
Descripción
FIELDNAME
Se le asigna el nombre de la Output table. Todas las opciones
que se generan en esta fila se refieren a la columna de la
Output table.
Referencia del Data Dictionary
Campo
Descripción
REF_FIELD
Se debe rellenar este campo si
•
La
Output
table
descrita
en
el
campo
catalog
corresponde con un campo del Data D.Dictionary y el
nombre en la Output table no es idéntico al que
aparece en el Data D.Dictionary.
•
Si el campo se llama igual es suficiente para especificar
la estructura del Data Dictionary la tabla en el campo.
REF_TABLE
Se debe rellenar este campo sólo si el campo tiene una
correspondencia directa en el Data Dictionary. La ALV puede
usarlo para copiar los textos de la cabecera.
6.09 Mostrar valores con unidades de moneada/medida
Ciertos valores de salida necesitan referenciarse a unidades (como el kilómetro) o
monedas (como la Libra). Para mostrar esos valores con el formato correcto para
los decimales las comas y demás, se le debe asignar un campo de moneda o
unidad. Hay tres formas de hacer esto con el field catalog:
•
Asignar el campo que contiene el valor a otro campo que contenga la
unidad/moneda
•
Definir específicamente una moneda o unidad a una columna entera.
ALV Grid Control
35-45
•
Darle un formato manualmente una a una.
6.10 Referencia al campo unidad de medida/moneda
Se usan los campos CFIELDNAME y QFIELDNAME para indicar las unidades de
moneda y cantidad (correlativamente). Si se hace un sumatorio de las columnas,
los totales vendrían separados por unidades/moneda.
El field catalog además dispone del campo TECH que, evita que las unidades se
vean como una columna y con esto se evita que los usuarios interactuaran con ella.
6.11 Cálculo de totales y mostrar valores
Se respeta la representación específica de los valores dependiendo de la
unidad/moneda en cada celda. En los sumatorios se separa por unidades.
El valor inicial es el 0 (Se puede evitar que aparezca un ‘0’ en la columna usando el
campo ‘NO_ZERO’ del field catalog). Cuando se calculan los totales, la ALV usa el
valor ‘0’ y las unidades específicas (aunque se hayan ocultado los ‘0’s).
6.12 Unidades par una columna entera
Para los casos en los que usan la misma unidad de cantidad o moneda para toda la
columna, el field catalog contiene campos CURRENCY y QUANTITY. Se puede
usar esos campos para determinar la unidad de los campos valor rellenándolos con
valores como ‘KM’ o ‘USD’.
Requisitos Previos
Para el campo valor se debe considerar los siguientes puntos:
•
El campo es de tipo P.
•
Es un campo de la Output table que tiene una unidad asociada.
ALV Grid Control
36-45
6.13 Campos relevantes en el field catalog
CFIELDNAME
Nombre del Campo que contiene la Moneda (unidad). La ALV
asocia el campo especificado en FIELDNAME al campo de
moneda CFIELDNAME.
CURRENCY
Contiene el nombre de la moneda (DEM, USD). La ALV
muestra
los
valores
de
la
columna
especificada
en
FIELDNAME.
QFIELDNAME
Nombre del campo que contiene la unidad de medida. ). La
ALV asocia el campo especificado en FIELDNAME al campo de
moneda QFIELDNAME.
QUANTITY
Contiene el nombre de la medida (KG). La ALV muestra los
valores de la columna especificada en FIELDNAME.
6.14 Opciones de salida de las columnas
CHECKBOX
El checkbox no puede ser modificado por el usuario. El
parámetro
sel_mode
de
la
layout
permite
al
usuario
seleccionar múltiples líneas de la ALV.
COL_POS
Fija la posición relativa de las columnas, sólo es significativo si
la posición de del campo no es la misma que la que tiene en la
field catalog. El usuario puede modificar posteriormente el
orden de las mismas.
DO_SUM
Si se marca este
campo, se calcula el total de la columna
(igual que si se hubiera presionado al botón de total de la
toolbar.
NO_OUT
Si se marca este campo se puede ocultar una columna. Esta
columna sigue estando disponible por el usuario y podría
volverse a dejar visible.
NO_SUM
Si se marca este campo se impide que se haga un sumatorio
de una columna.
OUTPUTLEN
Determina el ancho de un campo.
• Si el campo hace referencia al Data Dictironary, este
campo se rellena automáticamente usando el valor
indicado por el dominio.
ALV Grid Control
37-45
• Si el campo no hace referencia al Data D.Dictionary se
le debe especificar cuál es el ancho de la columna.
TECH
Si se marca este campo el campo relevante no se muestra y
no se puede ver de forma interactiva. El campo sólo es
conocido por field catalog.
6.15 Formato del contenido en las columnas
Campos como DECIMALS_O, EDIT_MASK, EXPONENT, NO_SIGN y ROUND
son los equivalentes a lo que se usaría con el comando WRITE (USING EDIT
MASK, EXPONENT, NO-SIGN y ROUND).
DECIMALS_O
Sólo Afecta en caso de que el campo CURRENCY tiene algún
valor. El valor de este campo determina el número de dígitos
que se puede mostrar después de la coma.
DECMFIELD
Define los decimales que se pueden mostrar.
EDIT_MASK
Se utiliza para las conversiones de datos como las exit de
CONVERSION_EXIT_ALPHA_OUTPUT.
EXPONENT
Determina un exponente fijo para un campo. El campo ha de
ser de tipo F.
LZERO
Sólo Afecta en caso de datos tipo NUMC. Por defecto no se
muestran todos los ‘0’s, Si se marca este campo los ‘0’s son
mostrados.
NO_SIGN
Sólo Afecta en caso de campos “valor”. Si se marca este
campo los valores se muestran absolutos (sin signos).
NO_ZERO
Si se marca este campo los ‘0’s no se muestran y se muestra
una celda vacía.
ROUND
Muestran valores de tipo P escalonados por potencias de 10.
Para valores positivos ROUND mueve la coma a la izquierda,
sino la mueve hacia la derecha.
ROUNDFIELD
Define la escala de salida. Se puede usar un campo adicional
en la Output table para determinar cuál es el campo que indica
la escala para cada fila.
ALV Grid Control
38-45
SYMBOL
Si se marca este campo, en la columna se muestran los datos
como
símbolos.
Es
posible
que
estos
símbolos
no
se
representen correctamente en una impresión.
6.16 Textos
Se utilizan estos campos para determinar los textos que se usan en la ALV Grid:
•
Como cabecera de columnas
•
Como tool tip (texto informativo que aparece remarcado cuando se
posiciona el ratón sobre un objeto)
•
Como columna de selección.
COLDDICTXT
Sólo Afecta en caso campos con referencia al Data Dictionary.
Los valores 'L', 'M', 'S' o 'R' se usan para determinar que
campo
entre
SCRTEXT_L,
SCRTEXT_M,
SCRTEXT_S
o
REPTEXT es usado para el texto de la cabecera.
COLTEXT
Si el campo no tiene referencia con el Data Dictionary el
contenido de este campo es el que se muestra en la cabecera
de la columna.
REPTEXT
Sólo Afecta en caso de campos con referencia al Data
Dictionary. Para estos campos, la ALV Grid copia la descripción
para la cabecera del elemento de datos en este campo.
SCRTEXT_L
Sólo Afecta en caso de campos con referencia al Data
Dictionary. Para estos campos, la ALV Grid copia la descripción
larga para la cabecera del elemento de datos en este campo.
SCRTEXT_M
Sólo Afecta en caso de campos con referencia al Data
Dictionary. Para estos campos, la ALV Grid copia la descripción
mediana para la cabecera del elemento de datos en este
campo.
SCRTEXT_S
Sólo Afecta en caso de campos con referencia al Data
Dictionary. Para estos campos, la ALV Grid copia la descripción
corta para la cabecera del elemento de datos en este campo.
SELDDICTXT
Sólo Afecta en caso de campos con referencia al Data
Dictionary. Los valores 'L', 'M', 'S' o 'R' se usan para
determinar que campo entre SCRTEXT_L, SCRTEXT_M,
ALV Grid Control
39-45
SCRTEXT_S o REPTEXT es usado para el texto de la
selección.
SELTEXT
Si el campo no tiene referencia con el Data Dictionary el
contenido de este campo es el que se muestra en la selección
de la columna.
TIPDDICTXT
Sólo Afecta en caso de campos con referencia al Data
Dictionary. Los valores 'L', 'M', 'S' o 'R' se usan para
determinar que campo entre SCRTEXT_L, SCRTEXT_M,
SCRTEXT_S o REPTEXT es usado para el tool tip.
6.17 Parámetros
Dictionary.
DD_OUTLEN
de
campos
con
referencia
del
Data
Este campo indica el ancho que ocupará al ser mostrado en la
pantalla. Sólo afecta a los campos sin referencia del Data
Dictionary o si se va ha modificar el campo por medio de una
exit.
No
tiene
porqué
coincidir
este
campo
con
el
OUTPUTLEN.
INTLEN
Especifica la longitud interna del campo. Sólo afecta si no se
tiene referencia al Data Dictionary o si se va ha modificar el
campo por medio de una exit.
INTTYPE
ALV Grid Control
Sólo se rellena si no se tiene referencia del Data Dictionary.
40-45
6.18 Otros campos
SP_GROUP
Agrupa campos. En el dialog box para definir una variante se
puede usar para limitar la lista u ocultar columnas de un
grupo.
TXT_FIELD
Define la referencia a un campo que se use como descripción
del actual campo. Si un subtotal es calculado, la ALV Grid
muestra la descripción en el campo asignado.
Ejemplo: La Output table tiene una columna para el código del
material y una columna para la descripción de ese código (por
ejemplo toallas). Si se hace un cálculo por subtotales y se ha
rellenado el campo TXT_FIELD para los códigos, en el total
aparecerá
también
la
descripción
otorgando
así
mayor
claridad.
ALV Grid Control
41-45
Lección 7
El layout
7.1 Definición
El layout es de tipo LVC_S_LAYO. Consta de campos para asignación gráfica de
propiedades de la ALV como mostrar excepciones, calcular totales y deshabilitar
ciertas opciones.
7.2 Estructura
Colores
Campo
Breve descripción
ZEBRA
Genera el ALV con un aspecto cebrado (líneas de distintos
colores alternados).
Propiedades del Grid Control
Campo
Breve descripción
GRID_TITLE
Texto de la “title bar”.
NO_HEADERS
Oculta las cabeceras
NO_ROWMARK
Oculta las marcas de las filas
NO_TOOLBAR
Oculta la toolbar
SEL_MODE
Modo de selección
SMALLTITLE
Tamaño del título
Interacción
Campo
Breve descripción
DETAILINIT
Muestra valores iniciales en la pantalla de detalle.
DETAILTITL
Title bar de la pantalla de detalle
SGL_CLK_HD
Un solo clic en la columna cabecera
ALV Grid Control
42-45
Excepciones
Campo
Breve descripción
EXCP_CONDS
Herencia de exceptions
EXCP_FNAME
Campo con el código de la excepción
EXCP_LED
Excepción como LEDs
EXCP_ROLLN
Data element para la documentación de la excepción
Opciones de totales
Campo
Breve descripción
NUMC_TOTAL
Permite hacer totales para los campos NUMC
NO_TOTLINE
No muestra la línea de totales
TOTALS_BEF
Mostrar totales antes de un registro.
Integración
Generalmente,
se
rellenan
los
campos
antes
de
la
llamada
al
método
set_table_for_first_display. Los métodos get_frontend_layout y set_frontend_layout
permiten modificar los resultados en el layout después de haberse lanzado el
método set_table_for_first_display.
7.3 Propiedades del Grid Control
Opciones generales para mostrar
Campo
Descripción
SMALLTITLE
Si se marca este campo, el tamaño del título corresponde con
el del resto de columnas. Valores: X, SPACE.
Customizing
Campo
Descripción del rango
GRID_TITLE
El título que está entre el gris y la toolbar debe tener una
longitud de 70 caracteres como mucho.
NO_HEADERS
Si se marca este campo, las columnas de la cabecera no se
muestran. Valores: SPACE, 'X'
NO_HGRIDLN
Si se marca este
campo, las columnas son mostradas sin
líneas horizontales. Valores: SPACE, 'X'
ALV Grid Control
43-45
NO_MERGING
Si se marca este campo, las celdas no son unidas cuando las
columnas se ordenan. Valores: SPACE, 'X'
NO_ROWMARK
Si se marca este campo, el botón de la izquierda que permite
seleccionar una línea desaparece (SEL_MODE = 'D') y
(SEL_MODE = 'A'). Valores: SPACE, 'X'
NO_TOOLBAR
Si se marca este campo, no se muestra la toolbar. Valores:
SPACE, 'X'
NO_VGRIDLN
Si se marca este campo, las columnas se muestran sin línea
vertical. Valores: SPACE, 'X'
SEL_MODE
Fija el método de selección. Valores: SPACE, 'A', 'B', 'C', 'D'
Excepciones
Campo
Descripción
EXCP_CONDS
Si se marca este campo, muestra una excepción en la fila de
(sub)totales. Los colores de las excepciones son, dependiendo
de las mismas '1': rojo, '2': amarillo, '3' verde. Valores:
SPACE, 'X'.
EXCP_FNAME
Campo de la Output table para mostrar la excepción.
EXCP_LED
La excepción no es mostrada como un semáforo sino como un
LED. Valores: SPACE, 'X'
Colores
Campo
Descripción
ZEBRA
Si se marca este campo, el listado muestra, jugando con dos
colores una línea de cada color. Valores: SPACE, 'X'
Opciones de totales
Campo
Descripción
NO_TOTLINE
Si se marca este campo, se pueden hacer subtotales pero no
totales. Valores: SPACE, 'X'
NUMC_TOTAL
Si se marca este
campo, los campos de tipo NUMC pueden
usarse para hacer totales. Valores: SPACE, 'X'
TOTALS_BEF
Si se marca este
campo, la ALV muestra los totales en la
primera fila y los subtotales antes de cada nuevo valor.
Valores: SPACE, 'X'
ALV Grid Control
44-45
Interaction Control
Campo
Descripción
DETAILINIT
Si se marca este
campo, la pantalla de detalle se habilita
también para los campos con valores iniciales. Valores:
SPACE, 'X'
DETAILTITL
Título de la ‘title bar’ para la pantalla de detalle.
Estructura de impresión
Contiene campos para la configuración de la impresión
Estructura
Campo
Descripción
RESERVELNS
Número
de
líneas
reservadas
para
el
evento
print_end_of_page
Si no se indica número, el texto especificado como pie de
página es sobrescrito por la lista.
GRPCHGEDIT
Habilita las opciones del usuario. Si se marca este campo el
usuario en la preview puede modificar cosas como las
ordenaciones, salto de páginas... de forma gráfica. Valores:
SPACE, 'X'.
PRNTLSTINF
Si se marca este campo, la información de la ordenación
subtotales y filtros definidos como elementos estadísticos son
impresos. Valores: SPACE, 'X'
Integración
La lista que se muestra en la ALV Grid es impresa en la ABAP List Viewer. El modo
de print preview deja que el usuario interactué y dichos cambios sólo afectan a la
impresión. Se puede deshabilitar con el campo PRINT).
ALV Grid Control
45-45
Descargar