Documente Academic
Documente Profesional
Documente Cultură
! "#
7.1. ,QWURGXFFLyQ
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.
El ALV ofrece mtodos globales de clase que pueden ser usados desde los
programas.
,QWHJUDFLyQ
Pgina 192
Rasgos
Esto es un vistazo a la funcionalidad que la ALV ofrece. Se puede...
Mostrar listados no jerrquicos con un aspecto visual.
Usar funciones tpicas como ordenar o filtrar automticamente si aadir
ni una lnea de cdigo ms.
Adaptar las funciones predefinidas y sus acciones
" !
!
Limitaciones
@ A
" !
,QVWDQFLDGH$/9*ULG&RQWURO
'HILQLFLyQ
,QWHJUDFLyQ
)
!,,!(, ; ;
"(;
/ BC
Pgina 193
7UDEDMDUFRQOD$/9*ULG&RQWURO
%iVLFRV
) "
!
& 2XWSXWWDEOH
&
@ ILHOG FDWDORJ
A
!
+
@
! @ ;
! D
ILHOGFDWDORJ
! @
@
;
C
Pgina 194
7UDEDMDUFRQORVFRQWUROHVGHOD$/9
@A
6 )
@ A
E
! (
>' !
@A(
Pgina 195
##7,.
!,,!(,8
7,
.
!,,
,
,7!+.#"07!+/
E )
(
> 9+
@ A &
&
C (
7,
2
#,#4:#:/
#"92,2
2
,#47,
/
/
0 ;
!,,
7;457!+
;
)
/ BC 9+(
)
$
( @% !
Pgina 196
& !# @ A
( @A
6
0<7!+#"0,7!+/
E +
( @
!# ( @
#00=7,5,-!,7 ,7,&!
2,
#,#4:
026:
6#22,#"4,7!+/
!
@A
/1A:*(
"
3URJUDPDFLyQGHDSOLFDFLRQHVHVSHFtILFDV
@ A (
(
!
Pgina 197
*UDEDUYDULDQWHV
2EMHWLYR
La funcin estndar 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.
Pgina 198
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
,B'()$8/7= 63$&(
Si el parmetro ,B'()$8/7 63$&( se puede hacer que se cargue una
variante usando el mdulo de funciones /9&B9$5,$17B'()$8/7B*(7.
3DVRVDVHJXLU
8
Las variantes slo pueden ser grabadas para su usuario
4. Pasar las variables en la llamada al mtodo
VHWBWDEOHBIRUBILUVWBGLVSOD\:
&$//0e72'2*5,'!VHWBWDEOHBIRUBILUVWBGLVSOD\
(;3257,1*,B(6758&785$B1$0(
6)/,*+7
,6B9$5,$17 *9B9$5,$17
,B6$9( ;B6$9(
&+$1*,1*,7B2877$% *7B6)/,*+7
Si se pasa slo el actual parmetro ,6B9$5,$17, los usuarios slo pueden leer
variantes pero no grabar nuevas. Si se usa el parmetro ,B6$9( se necesita
pasar una variante con la estructura ,6B9$5,$17.
Pgina 199
5HVXOWDGR
La ALV Grid tiene funciones estndar para la edicin 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.
Aadir nuevas funciones a la toolbar o el men.
Se puede tambin ocultar o deshabilitar funciones que no se necesiten.
([FHSFLRQHVGHVDOLGD
2EMHWLYR
Las excepciones son grficos que indica que, un valor ha pasado de un rango
en lnea de la lista. Por ejemplo, si usamos el modelo de un aeropuerto, se
puede usar un semforo en rojo para indicar que un vuelo est lleno. Los
colores diferentes ayudan al usuario a comprender rpidamente el estatus de la
capacidad. Se puede utilizar tres estatus diferentes:
'LVSOD\9DORULQWHUQR6LJQLILFDGRSRU(MHPSOR
2 Media/alta ocupacin (situacin crtica)
Se puede lanzar una excepcin como un led.
Los desarrolladores son los que deben determinar el rango de valores y el valor
para dicha excepcin.
3DVRVDVHJXLU
1. Definir el layout del tipo /9&B6B/$<2
'$7$JVBOD\RXW7<3(/9&B6B/$<2.
Pgina 200
Pgina 201
&RQYHUVLyQ([LW
2EMHWLYRV
Se usan los conversin exits para definir un salto a una rutina de conversin de
una columna de la Output table. La conversin es implementada usando
WRITE con 86,1*(',70$6.
5HTXLVLWRVSUHYLRV
Para que la ALV Grid pueda hacer una conversin, ella debe saber la longitud
interna y externa del campo, o lo que es lo mismo, la longitud antes y despus
de la conversin como se ve en el ejemplo.
'$7$7,0(7<3(79$/8(
:5,7(7,0(86,1*(',70$6.
BBBBBB
2XWSXW
En este ejemplo la longitud interna es de seis caracteres pero la salida es de
ocho.
3DVRVDVHJXLU
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
automticamente la longitud interna y externa.
o Para campos no referenciados, se debe especificar usando los
campos ,17/(1para la longitud interna y ''B287/(1para la longitud
externa en el field catalog.
2. Especificar la conversin usando el campo (',7B0$6.del field catalog.
3. Llamar al mtodo set_table_for_first_display pasndole el field catalog.
5HVXOWDGR
Los valores de las columnas son convertidas antes de que se muestren.
Pgina 202
0pWRGRVGHODFODVH&/B*8,B$/9B*5,'
0pWRGRV%iVLFRV
(OHPHQWRVGHOD$/9*ULG
/D\RXW\(VWUXFWXUDV
)XQFLRQHVJHQpULFDV
Pgina 203
(YHQWRVGHODFODVH&/B*8,B$/9B*5,'
$)7(5B5()5(6+
$)7(5B86(5B&200$1'
%()25(B86(5B&200$1'
%87721B&/,&.
&217(;7B0(18B5(48(67
'$7$B&+$1*('
'$7$B&+$1*('B),1,6+('
$IWHU/LVW5HIUHVK
$IWHU8VHU&RPPDQG
%HIRUH8VHU&RPPDQG
%XWWRQ&OLFN
&RQWH[W0HQX
'DWDZDV&KDQJHG
'DWD LQ WKH 2XWSXW 7DEOH ZDV
8SGDWHG
'(/$<('B&$//%$&.
'HOD\HG&DOOEDFN
'(/$<('B&+$1*('B6(/B&$//%$&.
'(/$<('B&+$1*('B6(/B&$//%$&.
'28%/(B&/,&.
'RXEOH&OLFN
(1'B2)B/,67
(QGBRIBOLVW
+276327B&/,&.
+RWVSRWZDV6HOHFWHG
/()7B&/,&.B'(6,*1
/HIW 0RXVH %XWWRQ 3UHVVHG RQ
&RQWUROLQ'HVLJQ0RGH
/()7B&/,&.B581
/HIW 0RXVH %XWWRQ 3UHVVHG RQ
&RQWUROLQ5XQ0RGH
0(18B%87721
0HQX%XWWRQ
029(B&21752/
&RQWURO0RYHG
21'5$*
)RU'UDJ6RXUFH
21'523
)RU'URS7DUJHW
21'523&203/(7(
)RU 'UDJ 6RXUFH LQ &DVH RI
6XFFHVV
21'523*(7)/$925
21)
21)
35,17B(1'B2)B/,67
35,17B(1'B2)B3$*(
35,17B723B2)B/,67
35,17B723B2)B3$*(
5,*+7B&/,&.
6,=(B&21752/
68%727$/B7(;7
722/%$5
723B2)B3$*(
86(5B&200$1'
Pgina 204
)LHOG&DWDORJ
'HILQLFLyQ
El Field Catalog es una tabla del tipo /9&B7B)&$7 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).
(VWUXFWXUD
El field catalog contiene ms de 60 campos, algunos de ellos slo son usados
de forma interna.
,QWHJUDFLyQ
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 9&BILHOG
FDWDORJB0(5*(
Los mtodos get_fronted_field catalog y set_fronted_field catalog se usan para
cambiar el field catalog despus de haber sido mostrado.
*HQHUDUHOILHOGFDWDORJ
Bsicamente se necesita un field catalog por cada listado que se muestra
usando un ALV Grid. Se puede generar de las siguientes formas:
Automticamente usando una estructura del Data Dictionary.
Manualmente en un programa ABAP.
Semi-automticamente combinando las dos opciones anteriores.
*HQHUDUHOILHOGFDWDORJDXWRPiWLFDPHQWH
2EMHWLYRV
Si la estructura del Output table corresponde a una estructura almacenada en
el Data Dictionary (DDic) la ALV Grid puede usar esta informacin y generar
automticamente el field catalog. En este caso todos los campos de esa
estructura del Data Dictionary son mostrados en la ALV.
Pgina 205
3DVRVDVHJXLU
Pasar la estructura al ALV Grid.
1. Referenciar la estructura con LIKE o INCLUDE STRUCTURE .
Si se usa INCLUDE STRUCTURE se puede generar parte automticamente y
otra manual aadiendo el resto de campos.
2. Pasar la estructura al mtodo set_table_for_first_display con el parmetro
,B6758&785(B1$0(
Si no se desea aadir ms campo a la estructura o si se desea ocultar campos
especficos, no se necesitar pasar el field catalog.
*HQHUDUHOILHOGFDWDORJGHIRUPDPDQXDO
2EMHWLYRV
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.
3DVRVDVHJXLU
El field catalog est definido en el Data Dictionary como una tabla del tipo
/9&B7B)&$7 Cada fila del field catalog corresponde a un campo del Output
table.
Dependiendo de cuantos campos estn en el Data Dictionary se deben rellenar
por lo menos los siguientes campos:
Pgina 206
&RQUHIHUHQFLDDO'DWD'LFWLRQDU\
&DPSR
'HVFULSFLyQ
),(/'1$0(
Nombre del campo en la tabla interna.
5()B7$%1$0(
Nombre de la estructura del DDIC.
5()B),(/'1$0(
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).
6LQUHIHUHQFLDDO'DWD'LFWLRQDU\
&DPSR
),(/'1$0(
,177<3(
287387/(1
&2/7(;7
6(/7(;7
'HVFULSFLyQ
Nombre del campo en la tabla interna.
Tipo ABAP del campo de la tabla.
Ancho de la columna
Cabecera de la columna
Descripcin de la columna para la seleccin de
variantes.
*HQHUDUHOILHOGFDWDORJ6HPL$XWRPiWLFDPHQWH
2EMHWLYRV
Cuando se genera el field catalog semi-automticamente, se combina la
informacin del Data Dictionary con informacin propia. Se puede:
Modificar o
Aadir descripciones de nuevos campos por ejemplo, el mtodo es bueno
para, por ejemplo los siguientes casos:
o Mostrar una tabla del Data Dictionary pero sin sacar todos los campos
(usando el campo 12B287).
o Mostrar filas adicionales que contienen iconos u otra informacin.
Pgina 207
3DVRVDVHJXLU
Para generar el field catalog de forma semi-automticamente:
1. Declarar una tabla interna de tipo /9&B7B)&$7
2. Llamar al mdulo de funciones /9&BILHOG FDWDORJB0(5*( 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.
Para
mostrar
el
Output
table
hay
que
llamar
al
mtodo
set_table_for_first_display pasndole el field catalog.
&DPSRVGHOILHOGFDWDORJ
8QLGDGHVGHPRQHGD\PHGLGD
&DPSR
'HVFULSFLyQ
&),(/'1$0(
Nombre del Campo de la moneda
&855(1&<
moneda
4),(/'1$0(
Campo con el nombre de la unidad de medida de referencia.
48$17,7<
Unidad de medida
)RUPDWRGHODFROXPQD
&DPSR
'HVFULSFLyQ
&2/B326
Posicin de una columna
'2B680
Clculo del total
(03+$6,=(
Color de la columna
+276327
Aparece una mano y hace que reaccione con un solo clic
.(<
Columna clave
12B287
No se muestra la columna.
12B680
No se permite un sumatorio.
287387/(1
Anchura de la columna en caracteres
&2/'',&7;7 Definicin del Data Dictionary.
&2/7(;7
Etiqueta de la columna para las funciones.
5(37(;7
Texto de la cabecera correspondiente al Data Dictionary.
6&57(;7B/
Texto largo del elemento del Data Dictionary.
6&57(;7B0
Texto mediano del elemento del Data Dictionary.
6&57(;7B6
Texto corto del elemento del Data Dictionary.
6(/'',&7;7
Texto definido en referencia al Data Dictionary.
6(/7(;7
Etiqueta de la columna.
7,3'',&7;7
Texto de referencia del Data Dictionary.
Pgina 208
3DUiPHWURVSDUDORVFDPSRVVLQUHIHUHQFLDDO'DWD'LFWLRQDU\
&DPSR
'HVFULSFLyQ
''B287/(1
Anchura en caracteres del campo.
,17/(1
Longitud interna en bytes
,177<3(
Tipo ABAP (C,D,N,...)
'(&,0$/6B2
Nmero de decimales.
'(&0/),(/' Campo con especificacin de decimales.
(',7B0$6.
Mscara para la salida de datos (conversin)
(;321(17
Exponente para la representacin con coma flotante
12B6,*1
Mostrar sin signo
12B=(52
Suprimir los ceros.
5281'
Redondear valores
5281'),(/' Campo con especificacin para el redondeo de valores
6<0%2/
Mostrar como un smbolo
2WURVFDPSRV
&DPSR
'HVFULSFLyQ
5(35(3
Valores para el criterio de seleccin.
63B*5283
Grupo de teclas.
7;7B),(/'
Nombre de la tabla interna.
),(/'1$0(
Nombre del campo de la tabla interna.
5()B),(/'
Referencia al nombre del campo de la tabla interna
5()B7$%/(
Referencia al nombre de la tabla interna
0RVWUDUYDORUHVFRQXQLGDGHVGHPRQHDGDPHGLGD
Ciertos valores de salida necesitan referenciarse a unidades (como el
kilmetro) o monedas (como la Libra). Para mostrar esos valores con el formato
correcto para los decimales las comas y dems, 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 especficamente una moneda o unidad a una columna entera.
Darle un formato manualmente una a una.
5HIHUHQFLDDOFDPSRXQLGDGGHPHGLGDPRQHGD
Se usan los campos &),(/'1$0(y 4),(/'1$0(para indicar las unidades
de moneda y cantidad (correlativamente). Si se hace un sumatorio de las
columnas, los totales vendran separados por unidades/moneda.
El field catalog adems dispone del campo 7(&+ que, evita que las unidades
se vean como una columna y con esto se evita que los usuarios interactuaran
con ella.
Pgina 209
&iOFXORGHWRWDOHV\PRVWUDUYDORUHV
Se respeta la representacin especfica 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 12B=(52del field catalog). Cuando se calculan los totales,
la ALV usa el valor 0 y las unidades especficas (aunque se hayan ocultado
los 0s).
8QLGDGHVSDUXQDFROXPQDHQWHUD
Para los casos en los que usan la misma unidad de cantidad o moneda para
toda la columna, el field catalog contiene campos &855(1&< y 48$17,7<.
Se puede usar esos campos para determinar la unidad de los campos valor
rellenndolos con valores como .0 o 86'.
(OOD\RXW
El layout es de tipo /9&B6B/$<2. Consta de campos para asignacin grfica
de propiedades de la ALV como mostrar excepciones, calcular totales y
deshabilitar ciertas opciones.
(VWUXFWXUD
&RORUHV
&DPSR
'HVFULSFLyQ
=(%5$
Genera el ALV con un aspecto cebrado (lneas de distintos
colores alternados).
*5,'B7,7/(
Texto de la title bar.
12B+($'(56 Oculta las cabeceras
12B52:0$5. Oculta las marcas de las filas
12B722/%$5 Oculta la toolbar
6(/B02'(
Modo de seleccin
60$//7,7/(
Tamao del ttulo
'(7$,/,1,7
Muestra valores iniciales en la pantalla de detalle.
'(7$,/7,7/
Title bar de la pantalla de detalle
6*/B&/.B+' Un solo clic en la columna cabecera
Pgina 210