ALV GRID OO

45
7/26/2019 ALV GRID OO http://slidepdf.com/reader/full/alv-grid-oo 1/45   ALV Grid Control 1-45

Transcript of ALV GRID OO

Page 1: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 1/45

 

 ALV Grid Control 1-45

Page 2: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 2/45

 

 ALV Grid Control 2-45

Lecc ión 1

Introducc 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.

Page 3: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 3/45

 

 ALV Grid Control 3-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.

Page 4: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 4/45

 

 ALV Grid Control 4-45

Lecc ión 2

Instancia de ALV Gr id 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.

Page 5: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 5/45

 

 ALV Grid Control 5-45

Lecc ión 3

Trabajar con la ALV Gr id 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

Page 6: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 6/45

 

 ALV Grid Control 6-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.

Page 7: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 7/45

 

 ALV Grid Control 7-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

Page 8: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 8/45

 

 ALV Grid Control 8-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) segeneran 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_displayEXPORTING 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.

Page 9: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 9/45

 

 ALV Grid Control 9-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 lavariante 

La ALV Grid muestra el icono de la variante

( ) pero no el menú en la toolbar. IS_VARIANT = SPACE.I_SAVE = SPACE. 

Leervariantes

La ALV Grid muestra el icono de variantes enla toolbar. El menú contiene sólo funcionespara seleccionar y cambiar la variante.

IS_VARIANT = <estructuravariante>I_SAVE = SPACE. (oIS_VARIANT es SPACE y I_SAVE No SPACE)

Leer ygrabarvariantes

La ALV Grid muestra los iconos de lasvariantes en el menú de la toolbar. Se puedeseleccionar las variantes existentes, sepueden cambiar y grabar.

IS_VARIANT = <estructuravariante>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.

Page 10: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 10/45

 

 ALV Grid Control 10-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 seguir1. 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étodoset_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 = GT_SFLIGHT.

Page 11: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 11/45

 

 ALV Grid Control 11-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.

ResultadoLa 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 Significado (por Ejemplo)

3 Baja ocupación

Page 12: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 12/45

 

 ALV Grid Control 12-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 campoEXCP_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.

Page 13: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 13/45

 

 ALV Grid Control 13-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

Page 14: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 14/45

 

 ALV Grid Control 14-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.

Page 15: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 15/45

 

 ALV Grid Control 15-45

Lecc ión 4

Métodos de la c lase 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 celdaque 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 Aplicación

Page 16: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 16/45

 

 ALV Grid Control 16-45

get_filtered_entries Coge índices de las filas que no han sido

mostradas debido a un filtroget_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

Page 17: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 17/45

 

 ALV Grid Control 17-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 seleccionadaE_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 Significado

ET_field catalog 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

Page 18: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 18/45

 

 ALV Grid Control 18-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.

Page 19: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 19/45

 

 ALV Grid Control 19-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 SignificadoET_INDEX_ROWS Tabla con los índices de las filas seleccionadas

4.11 GET_VARIANT

Devuelve la variante actual.

Requisitos previosLa 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

Page 20: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 20/45

 

 ALV Grid Control 20-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 hechospor 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.

Page 21: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 21/45

 

 ALV Grid Control 21-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_layoutEXPORTING

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

Page 22: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 22/45

 

 ALV Grid Control 22-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 otraselecció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

Page 23: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 23/45

 

 ALV Grid Control 23-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 laclase.

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.

Page 24: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 24/45

 

 ALV Grid Control 24-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.

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.

I_DEFAULT Determina si un usuario puede determinar variantespor 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 lasfunciones 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. 

Page 25: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 25/45

 

 ALV Grid Control 25-45

Lecc ión 5

Eventos de la c lase 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 celdaEvento 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.

Page 26: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 26/45

 

 ALV Grid Control 26-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

Page 27: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 27/45

 

 ALV Grid Control 27-45

Evento que muestra un texto para los subtotales de columnas.

Parámetro Significado

ES_SUBTOTTXT_INFO

T y p e LVC_S_STXT Estructura con información del criterio para hacer el

subtotal.

EP_SUBTOT_LINE

T y p e R e f T o DAT A 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

T y p e R e f T o

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 ': '

Page 28: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 28/45

 

 ALV Grid Control 28-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 T y p e R e f T o

CL _ALV_EVENT _T

OOLBAR_SET El objeto contiene sólo un atributo con la tabla de

funciones de la toolbar.

E_INTERACTIVET y p e CHAR 0 1 Si la “bandera” está activa, se provoca el método

usando set_toolbar_interactive.  Sino, el evento es

provocado por ALV Grid.

Page 29: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 29/45

 

 ALV Grid Control 29-45

Lecc ión 6

Fie ld 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 eltipo 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.

Page 30: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 30/45

 

 ALV Grid Control 30-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.

Page 31: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 31/45

 

 ALV Grid Control 31-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 necesariosi 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.

Page 32: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 32/45

 

 ALV Grid Control 32-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.

Page 33: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 33/45

 

 ALV Grid Control 33-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 columnaHOTSPOT 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.

Page 34: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 34/45

 

 ALV Grid Control 34-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 tableCampo Descripción

FIELDNAME Nombre del campo de la tabla interna.

Page 35: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 35/45

 

 ALV Grid Control 35-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.

Page 36: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 36/45

 

 ALV Grid Control 36-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 elvalor ‘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.

Page 37: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 37/45

 

 ALV Grid Control 37-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 demoneda 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.

Page 38: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 38/45

 

 ALV Grid Control 38-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 ROUNDson 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 deCONVERSION_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.

Page 39: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 39/45

 

 ALV Grid Control 39-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 cabecerade 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,

Page 40: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 40/45

 

 ALV Grid Control 40-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 de campos con referencia del DataDictionary.

DD_OUTLEN 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 Sólo se rellena si no se tiene referencia del Data Dictionary.

Page 41: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 41/45

 

 ALV Grid Control 41-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 (porejemplo 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.

Page 42: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 42/45

 

 ALV Grid Control 42-45

Lecc ió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

Page 43: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 43/45

 

 ALV Grid Control 43-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 elmé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'

Page 44: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 44/45

 

 ALV Grid Control 44-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 totalesCampo 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'

Page 45: ALV GRID OO

7/26/2019 ALV GRID OO

http://slidepdf.com/reader/full/alv-grid-oo 45/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

EstructuraCampo 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 laimpresión. Se puede deshabilitar con el campo PRINT).