Академический Документы
Профессиональный Документы
Культура Документы
1-45
Leccin 1
Introduccin
El ALV Grid control (ABAP List Viewer) es una herramienta flexible para mostrar
listas. La herramienta tiene operaciones comunes de las listas como funciones
genricas y pueden ser redefinidas. Esto permite que el uso de la ALV sirva para
una gran variedad de programas.
1.1 Implementacin
Como todos los controles wrap, la ALV ofrece mtodos globales de clase que
pueden ser usados desde los programas.
2-45
1.2 Integracin
Los controles son componentes software que pueden ser instanciados localmente.
Para poder comunicarse con ese componente todos los controles wrap usan
mtodos control Framework. En este contexto, las ALV son un caso especial.
La ALV usa controles del men de SAP para integrarlas en sus funciones estndar.
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...
1.4 Limitaciones
La ALV Grid control no puede mostrar bloques o listas jerrquicas. Las listas han
de ser mostradas en lneas individuales. Permite poder ordenarlas al gusto del
usuario e imprimirlas con ese formato.
3-45
Leccin 2
Instancia de ALV Grid Control
2.1 Definicin
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 informacin en forma de lista en la
pantalla.
Se puede llamar a mtodos de esa instancia para redefinir propiedades del control.
2.3 Integracin
La Clase cl_gui_alv_grid contiene tambin mtodos de control especficos y
mtodos para el control de la Framework.
4-45
Leccin 3
Trabajar con la ALV Grid Control
Bsicos
El siguiente grfico muestra los pasos requeridos para mostrar una lista en una
ALV:
Como mnimo se tiene que proveer de los siguientes dos tipos de informacin para
mostrar los datos.
Una tabla interna con los datos a mostrar, llamada Output table
5-45
de campo. Se puede usar tambin para dar un formato especial para una columna
como hacer que se muestren iconos o botones check.
Para controles bsicos (como el control del editor de texto, el visor HTML o el
controlador del visor de imgenes), se puede aplicar el mismo modelo de
programacin es aplicable a los susodichos procedimientos.
Primeros pasos
Esta seccin describe los fciles 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 descripcin de
los campos que se han usado.
6-45
grf_ccontainer
gt_sflight
7-45
CONTAINER_NAME = 'CCCONTAINER'.
CREATE OBJECT GRF_GRID
EXPORTING
I_PARENT = grf_ccontainer.
ENDIF.
Normalmente, se usa el mtodo cl_gui_cfw=>flush para pasar los mtodos
llamados en el frontend, pero desde que el Control Framework manda un flush
automtico 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.
8-45
Se pueden programar funciones Drag & Drop. La ALV Grid permite por
medio de la programacin usar funciones Drag & Drop para implementarlas
en aplicaciones gracias a las ALV Grid y otros custom controles.
Field catalog
Layout
Print Estructura
Modo
Resultado
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 slo funciones
I_SAVE = SPACE. (o
para seleccionar y cambiar la variante.
IS_VARIANT es SPACE y
I_SAVE No SPACE)
Leer y
grabar
variantes
IS_VARIANT = <estructura
variante>
I_SAVE = <'X', 'U' o 'A'>
9-45
Requisitos previos
Con los parmetros 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 mtodo set_table_for_first_display se instancia. Si no se quiere permitir
que los usuarios creen variables por defecto, el parmetro I_DEFAULT = SPACE.
Si el parmetro I_DEFAULT = SPACE se puede hacer que se cargue una variante
usando el mdulo de funciones LVC_VARIANT_DEFAULT_GET.
Pasos a seguir
1. Declarar la variable para determinar las opciones de grabar que estn
disponibles para el usuario y una estructura para identificar la variante.
DATA: X_SAVE
GV_VARIANT
las
variables
en
la
llamada
al
mtodo
set_table_for_first_display:
CALL MTODO GRID1->set_table_for_first_display
EXPORTING I_ESTRUCTURA_NAME = 'SFLIGHT'
IS_VARIANT
= GV_VARIANT
I_SAVE
= X_SAVE
CHANGING IT_OUTTAB
= GT_SFLIGHT.
10-45
I_SAVE = 'U'
I_SAVE = 'X'
I_SAVE = 'A'
el
layout
la
Output
table
usando
el
mtodo
set_table_for_first_display.
Para actualizar los datos en caso de que hayan cambiado, usar el mtodo
refresh_table_display.
12-45
Resultado
La ALV Grid muestra una columna de excepcin como se muestra en el grfico.
ALV Grid pueda hacer una conversin, ella debe saber la longitud
13-45
14-45
Leccin 4
Mtodos de la clase CL_GUI_ALV_GRID
Aplicacin
CONSTRUCTOR
set_table_for_first_display
refresh_table_display
Aplicacin
get_current_cell
set_current_cell_via_id
get_scroll_info_via_id
set_scroll_info_via_id
get_selected_cells
get_selected_columns
get_selected_rows
set_selected_rows
Selecciona filas.
Aplicacin
get_frontend_field_catalog
set_frontend_field_catalog
get_frontend_layout
set_frontend_layout
Set_3d_border
Aplicacin
15-45
get_filtered_entries
get_filter_criteria
set_filter_criteria
get_sort_criteria
set_sort_criteria
get_variant
set_user_command
4.05 CONSTRUCTOR
Este mtodo se llama automticamente si se crea un objeto de la clase
CL_GUI_ALV_GRID.
Definicin del mtodo
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>.
Parmetro
Significado
I_appl_events
4.06 GET_CURRENT_CELL
Se utiliza este mtodo 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 slo la informacin especfica de la columna.
La ALV Grid devuelve dos filas y columnas ndices: una que referencia en la Output
table y otra referente a la posicin que muestra la ALV.
Definicin del mtodo
CALL MTODO <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>.
Parmetro
Significado
E_ROW
E_VALUE
E_COL
ES_ROW_ID
ES_COL_ID
Estructura
con
la
informacin
de
la
columna
ndice
Significado
Estructura con la descripcin de la Output table
4.08 GET_FRONTEND_LAYOUT
Coge el actual layout.
Definicin del mtodo
CALL MTODO <ref.var.CL_GUI_ALV_GRID>->get_frontend_layout
IMPORTING
ALV Grid Control
17-45
Significado
ES_layout
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 slo 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 vaco.
Requisitos previos
Se debe activar el modo cell selection para permitir al usuario seleccionar celdas
sueltas (y celdas mltiples usando la tecla Ctrl). Para conseguir esto, en la llamada
al mtodo set_table_for_first_display se le debe pasar la layout.
Definicin del mtodo
CALL MTODO <ref.var.CL_GUI_ALV_GRID>->get_selected_cells
IMPORTING
ET_CELL = <tabla interna de tipo LVC_T_CELL>.
Parmetro
Significado
ET_CELL
4.10 GET_SELECTED_ROWS
Devuelve el ndice de las filas seleccionadas
La primera fila es la 1.
18-45
Requisitos previos
Para permitir a los usuarios seleccionar filas mltiples, el campo sel_mode de la
layout debe contener el valor 'A', 'C' o 'D'
Definicin del mtodo
CALL MTODO <ref.var.CL_GUI_ALV_GRID>->get_selected_rows
IMPORTING
ET_INDEX_ROWS = <tabla interna de tipo LVC_T_ROW>.
Parmetro
Significado
ET_INDEX_ROWS
4.11 GET_VARIANT
Devuelve la variante actual.
Requisitos previos
La variante actual ha debido ser grabada antes de llamar al mtodo. Para ello, en la
llamada
al
mtodo
set_table_for_first_display
los
parmetros
I_SAVE
Significado
ES_VARIANT
4.12 REFRESH_TABLE_DISPLAY
El siguiente mtodo se usa para refrescar los datos de la ALV y poder mostrar los
cambios efectuados.
Definicin del mtodo
ALV Grid Control
19-45
Significado
IS_STABLE
EXPORTING
IT_field catalog = <tabla interna de tipo LVC_T_FCAT>.
Parmetro
Significado
IT_field catalog
Restricciones
En este mtodo 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.
20-45
4.14 SET_FRONTEND_LAYOUT
Fija un layout para el ALV actual. Despus de usarse, se debe usar el mtodo
refresh_table_display para que los cambios se reflejen.
En la layout se determinan las propiedades de la ALV. Usando en el mtodo
set_table_for_first_display
el
parmetro
IS_LAYOUT
se
obtiene
idnticos
resultados.
Definicin del mtodo
CALL MTODO <ref.var.CL_GUI_ALV_GRID>->set_frontend_layout
EXPORTING
IS_LAYOUT = <estructura de tipo LVC_S_LAYO>.
Parmetro
Significado
IS_LAYOUT
4.15 SET_SELECTED_CELLS
Marca como seleccionas celdas de la ALV. Cualquier otra seleccin que se hubiera
hecho con anterioridad desaparece al ser llamado este mtodo.
Definicin del mtodo
CALL MTODO <ref.var.CL_GUI_ALV_GRID>->set_selected_cells
EXPORTING
IT_CELLS = <Tabla de tipo LVC_T_CELL>.
Parmetro
Significado
IT_CELLS
4.16 SET_SELECTED_COLUMNS
Marca como seleccionadas columnas de la ALV. Cualquier otra seleccin que se
hubiera hecho con anterioridad desaparece al ser llamado este mtodo.
Definicin del mtodo
ALV Grid Control
21-45
Significado
IT_COL_TABLE
4.17 SET_SELECTED_ROWS
Marca como seleccionadas filas de la ALV. La primera fila es la fila 1. Cualquier otra
seleccin que se hubiera hecho con anterioridad desaparece al ser llamado este
mtodo.
Definicin del mtodo
CALL MTODO <ref.var.CL_GUI_ALV_GRID>->set_selected_rows
EXPORTING
IT_INDEX_ROWS = <tabla interna de tipo LVC_T_ROW>.
Parmetro
Significado
4.18 SET_SORT_CRITERIA
Fija el criterio de ordenacin por columnas. Para que surta efecto se ha de llamar
despus al mtodo refresh_table_display.
Definicin del mtodo
CALL MTODO <ref.var.CL_GUI_ALV_GRID>->set_sort_criteria
EXPORTING
IT_SORT = <tabla interna de tipo LVC_T_SORT>.
Parmetro
Significado
IT_SORT
4.19 SET_TABLE_FOR_FIRST_DISPLAY
22-45
clase.
Definicin del mtodo
CALL MTODO <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>
Parmetro
Significado
I_ESTRUCTURA_NAME
23-45
IS_VARIANT
I_SAVE
I_DEFAULT
X: slo globales
A: opciones X U a la vez.
: no se puede grabar.
X : Est permitido.
: No est permitido.
si
IS_PRINT
IT_SPECIAL_GROUPS
IT_TOOLBAR_EXCLUDING
IT_OUTTAB
IT_field catalog
IT_SORT
IT_FILTER
24-45
Leccin 5
Eventos de la clase CL_GUI_ALV_GRID
La seccin trabajando con la ALV Grid control describe puntos especiales que se
deben considerar para trabajar con los eventos de la clase.
Aplicacin
print_end_of_list
print_top_of_list
print_end_of_page
print_top_of_page
subtotal_text
Aplicacin
double_click
hotspot_click
5.03 DOUBLE_CLICK
Se activa el evento con el doble-click encima de una celda
Evento
Significado
5.04 HOTSPOT_CLICK
Se activa cuando en una celda hotspot (aparece una mano en el puntero del ratn
al pasar sobre ella) se hace click.
25-45
Requisitos previos
Para habilitar a los usuarios una columna con hotspot, hay que hacer lo siguiente:
Campo keyhot del layout para todos los key fields del Output table
Parmetro
Significado
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 pgina (Pie de pgina).
Requisitos previos
Para que exista pie de pgina se ha de reservar lneas de la pgina para ello usando
el campo reservelns de la estructura lvc_s_prnt que se le pasa al mtodo
set_table_for_first_display.
5.07 PRINT_TOP_OF_LIST
Evento que imprime un texto en la cabecera. Evento que se ejecuta slo 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 pgina de la impresin.
5.09 SUBTOTAL_TEXT
26-45
Significado
ES_SUBTOTTXT_INFO
Type LVC_S_STXT
EP_SUBTOT_LINE
Type Ref To DATA
E_EVENT_DATA
Type Ref To
CL_ALV_EVENT_DATA
Ejemplo
Mostrar una tabla con la estructura SFLIGHT
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 mtodo y pasar los parmetros
3. Los parmetros ep_subtot_line y e_event_data contienen referencia a
variables tipo DATA, por eso se deben usar field symbols.
FORM Mtodo_subtotal_text
USING es_subtottxt_info TYPE lvc_s_stxt
ep_subtot_line
e_event_data
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 ': '
27-45
5.10 TOOLBAR
Evento que la ALV provoca cada vez que el control toolbar tiene que ser
regenerado.
Para aadir funciones propias, se debe instanciar el mtodo set_toolbar_interactive
y escribir un mtodo handler.
Se puede ocultar la toolbar en su totalidad rellenado el campo no_toolbar del
layout.
Parmetro
Significado
E_INTERACTIVE
Type CHAR01
28-45
Leccin 6
Field Catalog
6.01 Definicin
El Field Catalog es una tabla del tipo LVC_T_FCAT que contiene informacin 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 generacin del
field catalog automtica).
6.02 Estructura
El field catalog contiene ms de 60 campos, algunos de ellos slo son usados de
forma interna.
6.03 Integracin
Generalmente, se recomienda rellenar los campos del field catalog antes de mostrar
la ALV por primera vez y utilizar despus el mtodo set_table_for_first_display.
Para ajustar el field catalog generado por el ALV para un requerimiento especial
antes de mostrarlo se usa el mdulo de funciones VC_field catalog_MERGE.
Los mtodos get_fronted_field catalog y set_fronted_field catalog se usan para
cambiar el field catalog despus de haber sido mostrado.
29-45
30-45
Descripcin
FIELDNAME
REF_TABNAME
Descripcin
FIELDNAME
INTTYPE
OUTPUTLEN
Ancho de la columna
COLTEXT
Cabecera de la columna
SELTEXT
31-45
se
genera
el
field
catalog
semi-automticamente,
se
combina
la
Modificar o
Mostrar una tabla del Data Dictionary pero sin sacar todos los
campos (usando el campo NO_OUT).
Pasos a seguir
Para generar el field catalog de forma semi-automticamente:
1. Declarar una tabla interna de tipo LVC_T_FCAT.
2. Llamar al mdulo 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 funcin genera el field catalog.
3. Leer las filas que se deseen cambiar y adaptarlas a los requerimientos
especficos. Si la Output table contiene ms campos que estn en el Data
Dictionary se pueden aadir usando una fila nueva por cada campo en el
field catalog.
32-45
Descripcin
CFIELDNAME
CURRENCY
moneda
QFIELDNAME
QUANTITY
Unidad de medida
Formato de la columna
Campo
Descripcin
COL_POS
DO_SUM
EMPHASIZE
Color de la columna
HOTSPOT
KEY
Columna clave
NO_OUT
No se muestra la columna.
NO_SUM
No se permite un sumatorio.
OUTPUTLEN
Texto
Campo
Descripcin
COLDDICTXT
COLTEXT
REPTEXT
SCRTEXT_L
SCRTEXT_M
SCRTEXT_S
SELDDICTXT
SELTEXT
Etiqueta de la columna.
TIPDDICTXT
33-45
Descripcin
DD_OUTLEN
INTLEN
INTTYPE
Descripcin
DECIMALS_O
Nmero de decimales.
DECMLFIELD
EDIT_MASK
EXPONENT
NO_SIGN
NO_ZERO
ROUND
Redondear valores
ROUNDFIELD
SYMBOL
Otros campos
Campo
Descripcin
REPREP
SP_GROUP
Grupo de teclas.
TXT_FIELD
Descripcin
FIELDNAME
34-45
Referencia al
Data Dictionary
Campo
Descripcin
REF_FIELD
REF_TABLE
Descripcin
FIELDNAME
Descripcin
REF_FIELD
La
Output
table
descrita
en
el
campo
catalog
REF_TABLE
35-45
El campo es de tipo P.
36-45
CURRENCY
los
valores
de
la
columna
especificada
en
FIELDNAME.
QFIELDNAME
QUANTITY
sel_mode
de
la
layout
permite
al
usuario
DO_SUM
Si se marca este
NO_SUM
OUTPUTLEN
37-45
DECMFIELD
EDIT_MASK
EXPONENT
LZERO
NO_SIGN
NO_ZERO
ROUND
ROUNDFIELD
38-45
SYMBOL
smbolos.
Es
posible
que
estos
smbolos
no
se
6.16 Textos
Se utilizan estos campos para determinar los textos que se usan en la ALV Grid:
COLDDICTXT
entre
SCRTEXT_L,
SCRTEXT_M,
SCRTEXT_S
REPTEXT
SCRTEXT_L
SCRTEXT_M
SCRTEXT_S
SELDDICTXT
39-45
TIPDDICTXT
6.17 Parmetros
Dictionary.
DD_OUTLEN
de
campos
con
referencia
del
Data
No
tiene
porqu
coincidir
este
campo
con
el
OUTPUTLEN.
INTLEN
INTTYPE
40-45
TXT_FIELD
tambin
la
descripcin
otorgando
as
mayor
claridad.
41-45
Leccin 7
El layout
7.1 Definicin
El layout es de tipo LVC_S_LAYO. Consta de campos para asignacin grfica de
propiedades de la ALV como mostrar excepciones, calcular totales y deshabilitar
ciertas opciones.
7.2 Estructura
Colores
Campo
Breve descripcin
ZEBRA
Breve descripcin
GRID_TITLE
NO_HEADERS
NO_ROWMARK
NO_TOOLBAR
Oculta la toolbar
SEL_MODE
Modo de seleccin
SMALLTITLE
Interaccin
Campo
Breve descripcin
DETAILINIT
DETAILTITL
SGL_CLK_HD
42-45
Excepciones
Campo
Breve descripcin
EXCP_CONDS
Herencia de exceptions
EXCP_FNAME
EXCP_LED
EXCP_ROLLN
Opciones de totales
Campo
Breve descripcin
NUMC_TOTAL
NO_TOTLINE
TOTALS_BEF
Integracin
Generalmente,
se
rellenan
los
campos
antes
de
la
llamada
al
mtodo
Descripcin
SMALLTITLE
Customizing
Campo
GRID_TITLE
NO_HEADERS
NO_HGRIDLN
Si se marca este
43-45
NO_MERGING
NO_ROWMARK
NO_TOOLBAR
NO_VGRIDLN
SEL_MODE
Excepciones
Campo
Descripcin
EXCP_CONDS
EXCP_FNAME
EXCP_LED
Colores
Campo
Descripcin
ZEBRA
Opciones de totales
Campo
Descripcin
NO_TOTLINE
NUMC_TOTAL
Si se marca este
Si se marca este
44-45
Interaction Control
Campo
Descripcin
DETAILINIT
Si se marca este
Estructura de impresin
Contiene campos para la configuracin de la impresin
Estructura
Campo
Descripcin
RESERVELNS
Nmero
de
lneas
reservadas
para
el
evento
print_end_of_page
Si no se indica nmero, el texto especificado como pie de
pgina es sobrescrito por la lista.
GRPCHGEDIT
PRNTLSTINF
Integracin
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 slo afectan a la
impresin. Se puede deshabilitar con el campo PRINT).
45-45