Вы находитесь на странице: 1из 19



! "#


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.

La ALV consta de una barra de herramientas (toolbar), un ttulo y la tabla de


salida.
Si el programador as lo desea, se puede ocultar el ttulo y toda o parte de la
toolbar.
,PSOHPHQWDFLyQ

El ALV ofrece mtodos globales de clase que pueden ser usados desde los
programas.
,QWHJUDFLyQ

Los controles son componentes software que pueden ser instanciados


localmente. Para poder comunicarse con ese componente todos los controles
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.




Copyright Bussap Consulting S.L.

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

       


!,,!(,
## -,(-!.
!,,!(,/
&     @      
    

      ;         


  

-HUDUTXtDGHODFODVH

,QWHJUDFLyQ

  ) 
!,,!(,   ; ;  
 "(;   / BC






Copyright Bussap Consulting S.L.

Pgina 193

7UDEDMDUFRQOD$/9*ULG&RQWURO
%iVLFRV

             


   @ 


) "    !       
     

&          2XWSXWWDEOH
&                
      @    ILHOG FDWDORJ     
    

A               !  
     
   +       @
!      @ ;   !  D       
       

ILHOGFDWDORJ     
     !        @      @    
             
     ;  
                  
C







Copyright Bussap Consulting S.L.

Pgina 194

7UDEDMDUFRQORVFRQWUROHVGHOD$/9

) -      9 


  
      
&     
 ; C 
!   $: % (  #  $%  
 
'$ ! %
    $        !
:*,      !  %     
           

(YHQWRVHVSHFLDOHV+DQGOLQJ$VSHFWRVGHOD$/9*ULG
&RQWURO

  @ A             + 


     @AB 
      B    @ A    
   
*  !           
  
 !!
           ,#0,1  ( 
;  0,2 ,345 #6 1

3ULPHURVSDVRV


            
      @A

6 )           @ A        
  
E
       !     (     
     
>'   !      @A( 

                  
   





Copyright Bussap Consulting S.L.

Pgina 195

##7,.
!,,!(,8
7,

 .
!,,
 ,
 
,7!+.#"07!+/

E )         (         
     


>    9+            
      @ A  &    & 
  C (    

7,

  #0/


#"97,

 
2
#,#4:#:/
#"92,2
2
,#47,

 /
/

0  ;
!,,
7;457!+    
;           )
/ BC      9+( 
 
)                $
(  @%  !





Copyright Bussap Consulting S.L.

Pgina 196

0  ;


!,,
7;457!+    
;           )
/ BC      9+( 
 
)                $
(  @%  !
0RVWUDUXQDOLVWDHQOD$/9*ULGFRQWURO


&  !#      @ A             
    (     @A

6       
0<7!+#"0,7!+/

E   +  (      @
  !# (  @

#00=7,5,-!,7 ,7,&!
2,   #,#4: 026:
6#22, #"4,7!+/

    !  
  @A       
/1A:*(
   " 

3URJUDPDFLyQGHDSOLFDFLRQHVHVSHFtILFDV


       @ A     (  (  
    
  !                 


      (!  


   
' (          F     
             
    





Copyright Bussap Consulting S.L.

Pgina 197

      '  G '    @ A 


           '  G '   
          @A(


         (      !  
  
o /  
o  (
o  
0RVWUDUYDULDQWHV

)  (  !    #   


              
    ; VHWBWDEOHBIRUBILUVWBGLVSOD\   , #18
 ,1##(,# 0/




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




Copyright Bussap Consulting S.L.

Pgina 198

El desarrollador determina si los usuarios pueden guardar las variantes y definir


si las opciones estn disponibles.
5HTXLVLWRVSUHYLRV

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

1. Declarar la variable para determinar las opciones de grabar que estn


disponibles para el usuario y una estructura para identificar la variante.
'$7$;B6$9(7<3(FParmetro I_SAVE
*9B9$5,$177<3(',69$5,$17Parmetro IS_VARIANT
2. La estructura tipo DISVARIANT debe contener como mnimo el report ID.
*9B5(3,' 6<5(3,'
*9B9$5,$175(3257 *9B5(3,'

3. Determinar las opciones de grabado disponibles para el usuario ;B6$9( 

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.




Copyright Bussap Consulting S.L.

Pgina 199

5HVXOWDGR

La toolbar ahora incluye en el men la opcin de que los usuarios lean y


graben variantes. Dependiendo del valor del parmetro ,B6$9(se puede:
2SFLRQHVSDUDHOSDUiPHWUR,B6$9(

I_SAVE = SPACE Las variantes no pueden ser grabadas.


I_SAVE = 'U' Slo se pueden acceder a las variantes del usuario.
I_SAVE = 'X' Slo se pueden grabar variables globales.
I_SAVE = 'A' Tanto las variantes globales como las de usuario pueden ser
grabadas.
,QWHJUDFLyQGHODVIXQFLRQHVGHILQLGDV

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\9DORULQWHUQR6LJQLILFDGR SRU(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.





Copyright Bussap Consulting S.L.

Pgina 200

2. Aadir una variable de tipo c a la Output table como se muestra en el


ejemplo.
'$7$%(*,12)*7B2877$%2&&856
,1&/8'((6758&785$'',&6WUXNWXU!
'$7$OLJKW7<3(&0XHVWUDH[FHSWLRQV
'$7$(1'2)*7B2877$%
3. Asignar al campo (;&3B)1$0(el nombre de la excepcin.
4. Si se desea mostrar la excepcin como un led debe asignar el campo
(;&3B/('al layout.
5. Haga un loop y compruebe el valor de la excepcin, dependiendo de l
asigne los valores 1, 2, 3 para mostrar los semforos.
6. Pasar el layout y la Output table usando el mtodo
VHWBWDEOHBIRUBILUVWBGLVSOD\

Para actualizar los datos en caso de que hayan cambiado, usar el mtodo
UHIUHVKBWDEOHBGLVSOD\

5HVXOWDGR
La ALV Grid muestra una columna de excepcin como se muestra en el
grfico.









Copyright Bussap Consulting S.L.

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.




Copyright Bussap Consulting S.L.

Pgina 202

0pWRGRVGHODFODVH&/B*8,B$/9B*5,'
0pWRGRV%iVLFRV

(OHPHQWRVGHOD$/9*ULG

/D\RXW\(VWUXFWXUDV


)XQFLRQHVJHQpULFDV




Copyright Bussap Consulting S.L.

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'

0XOWLSOH )ODYRUV 3RVVLEOH DW D


'URS
2Q+HOS5HTXHVW
2Q9DOXH5HTXHVW
(1'B2)B/,67RI&ODVVLF$/9
(1'B2)B3$*(
LQ
/LVW
3URFHVVLQJ
723B2)B/,67RI&ODVVLF$/9
723B2)B3$*(
LQ
/LVW
3URFHVVLQJ
5LJKW 0RXVH %XWWRQ &OLFNHG RQ
&RQWURO
&RQWURO5HVL]HG
(GLW6XEWRWDOV7H[W
7RROEDU
7RSBRIBSDJH
8VHU&RPPDQG





Copyright Bussap Consulting S.L.

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.




Copyright Bussap Consulting S.L.

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:





Copyright Bussap Consulting S.L.

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.






Copyright Bussap Consulting S.L.

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.






Copyright Bussap Consulting S.L.

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.




Copyright Bussap Consulting S.L.

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

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 35,17).








Copyright Bussap Consulting S.L.

Pgina 210

Вам также может понравиться