Sie sind auf Seite 1von 13

1| Qu es un ALV?

Los tipos de ALV ms comnmente usados son tres:


Grillas, Listas y Jerrquico. Las Grillas y las Listas pueden utilizarse
en cualquier reporte,
Grillas -> REUSE_ALV_GRID_DISPLAY
Listas -> REUSE_ALV_LIST_DISPLAY
Jerrquico -> REUSE_ALV_HIERSEQ_LIST_DISPLAY


2| Mi primer reporte ALV
PASO 1ero. : Declaraciones de tipos, estructuras y tablas
propias del ALV
Dentro de este paso, declaramos el tipo SLIS, que es necesario para
la utilizacin de reportes ALV.

Tambin declaramos una tabla y una estructura para el catalogo del
ALV que son del tipo SLIS_T_FIELDCAT_ALV y SLIS_FIELDCAT_ALV,
otra estructura para la configuracin de la salida que es del tipo
SLIS_LAYOUT_ALV y una variable del tipo SY-REPID, para almacenar
el nombre del programa.


PASO 2do. : Declaracin de la tabla de salida del ALV
Vamos a declarar la tabla de salida TI_USUARIOS que se mostrar
en el ALV.


PASO 3ero. : Seleccin de los datos que se mostrarn en el
ALV
Ahora seleccionamos los datos de la tabla ZTABLA_USUARIOS, que
mostraremos en el listado de salida y los guardamos en la tabla
interna TI_USUARIOS.


PASO 4to. : Armado del catlogo del ALV
Armamos el catlogo del ALV con los campos que sern las columnas
de nuestro reporte. Para ello, completaremos para cada columna del
listado, los siguientes campos pertenecientes a la tabla del catlogo.


Existen muchismas ms propiedades del
catlogo que se pueden configurar segn lo
que necesitemos mostrar en el listado. Para
ms informacin, hacer doble click en el tipo
SLIS_T_FIELDCAT_ALV.


PASO 5to. : Configuracin de la salida del ALV
Vamos a cargar con valores la estructura ST_LAYOUT para configurar
ciertos aspectos de la salida del ALV.


Existen muchismas ms opciones a configurar
en el layout de un reporte ALV. Para ms
informacin, hacer doble click en el tipo
SLIS_LAYOUT_ALV.

PASO 6to. : Ejecucin de la funcin del ALV
Por ltimo, lo que nos queda es la ejecucin de la funcin del ALV. Si
queremos un reporte tipo grilla, ejecutaremos la funcin
REUSE_ALV_GRID_DISPLAY. Si queremos un reporte tipo lista,
ejecutaremos la funcin REUSE_ALV_LIST_DISPLAY. Ambas
funciones se completan de la misma manera. Como dijimos
anteriormente, los ALV jerrquicos se utilizan para cuando tenemos
que mostrar datos de cabecera y detalle, por lo tanto no es aplicable
para este ejemplo.
Si es grilla:

Si es lista:

Finalmente si ejecutamos el reporte veremos, si usamos la funcin
para grillas:

Y si usamos la funcin para listas:


1| Creacin del catlogo en forma automtica
Existen dos formas de crear el catlogo del ALV, la primera es en
forma manual, ingresando campo por campo, tal como hicimos en el
ejemplo de la leccin anterior. La segunda, es crear el catlogo en
forma automatica con la funcin
REUSE_ALV_FIELDCATALOG_MERGE. Si tomamos el ejemplo de la
leccin anterior, el cdigo para la creacin automtica sera el
siguiente:

Pero para poder hacer esto vamos a tener que modificar dos puntos
del programa. El primero es la forma como se declara la tabla interna
del ALV. Si creamos el catlogo en forma automtica debemos
declarar la tabla interna utilizando LIKE y haciendo referencia a
campos de una tabla base de datos existente.

Lo otro que debemos hacer es configurar el editor, para que se
restrinja la cantidad de caractres de ancho de la pantalla a 72.
Esto lo hacemos desde la opcin de men Utilities/Settings/ABAP
Editor/Editor/Downwars-Comp.Line Lenght(72).


2| Utilizacin de Logos y encabezados
En los ALV Grilla podemos agregar logos y encabezados en los
listados. Para ello, debemos declarar una tabla del tipo
SLIS_T_LISTHEADER y una estructura del tipo SLIS_LISTHEADER.

Antes de completar el catlogo, vamos a llenar la tabla TI_HEADER
con el encabezado del Reporte, el tipo de reporte y la fecha del
sistema.

Luego, agregamos en la llamada a la funcion del ALV, el parmetro
exporting I_CALL_TOP_PAGE con el literal 'TOP_OF_PAGE', que
ser el nombre de la subrutina que cargue el contenido del
encabezado y el logo.

Ahora creamos la subrutina TOP_OF_PAGE, con la llamada a la
funcin REUSE_ALV_COMMENTARY_WRITE, que carga el encabezado
que definimos en la tabla interna TI_HEADER, junto con el logo
'ENJOYSAP_LOGO'.


Para ver los logos disponibles en el sistema o
cargar nuevos debemos utilizar la transaccin
SE78.

Finalmente ejecutamos el programa y vemos:



3| Utilizacin de Status GUIs
Para poder utilizar un Status GUI en un reporte ALV, vamos a agregar
en la llamada a la funcin del ALV el parmetro exporting
I_CALLBACK_PF_STATUS_SET con el literal 'PF_STATUS', que ser
el nombre de la subrutina que declare la utilizacin del Status GUI y
el parmetro exporting I_CALLBACK_USER_COMMAND con el literal
'USER_COMMAND', que ser el nombre de la subrutina que se
ejecute para capturar la accin realizada por el usuario.

Ahora definimos la subrutina PF_STATUS que setea el status.

Vamos a crear en el status, un botn con la descripcin "Usuarios
activos" y el cdigo USU_ACTI. Tambin en las Function Keys del
status, agregamos los cdigos para poder navegar para atras, volver
a la pantalla principal o salir del programa. Cuando creamos estos
botones, debemos acordarnos de setearlos con Function Type ''E'',
sino no funcionarn como esperamos.

Por ltimo agregamos la subrutina que capturar las acciones
realizadas por el usuario.

Finalmente si ejecutamos el reporte, veremos en el Status GUI, el
botn de usuarios activos y si lo ejecutamos, se procesar el cdigo
existente en la subrutina USER_COMMAND.



1| Agrupamiento en un ALV
Podemos agrupar los registros que mostramos en un ALV. Para ello,
declaramos una tabla del tipo SLIS_T_SORTINFO_ALV y una
estructura del tipo SLIS_SORTINFO_ALV.

Luego antes de llamar a la funcin del ALV, vamos a cargar la tabla
TI_SORT con los registros en el orden en el que deseamos agrupar.

Ahora debemos completar el parmetro exporting IT_SORT con
nuestra tabla interna TI_SORT.

Finalmente, si ejecutamos el reporte, veremos la agrupacin por
Estado Civil.



2| ALV Jerrquico
Como dijimos anteriormente, los ALV Jerrquicos se utilizan cuando
tenemos que mostrar en un reporte, datos de cabecera y de posicin.
En las declaraciones de las tablas internas de cabecera y posiciones,
debe haber como mnimo un campo en comn. En el caso que
mostramos a continuacin, el campo comn es el CARRID, que es la
compaia area.

Debemos declarar una estructura del tipo SLIS_KEYINFO_ALV, que
ser ST_KEYINFO y contendr el campo clave que une a las dos
tablas internas.

Ahora vamos a cargar las tablas internas de cabecera y detalle con un
juego de datos para la compaia area ARG. En el programa de
ejemplo de la leccin, tambin cargamos un juego de datos para la
compaia area LAN.

Cuando configuremos la salida del reporte ALV, debemos setear la
propiedad EXPAND_FIELDNAME con el nombre del campo que une a
las dos tablas internas.

Luego crearemos el catlogo del ALV para ambas tablas internas,
sumando los campos de ambas tablas en la tabla del catlogo
TI_CATALOGO.

Ahora tenemos que completar la estructura ST_KEYINFO. En los
campos HEADER01 y ITEM01 va a ir el campo de la tabla de cabecera
que hace de vnculo con la tabla de detalles.

Por ltimo, ejecutamos la funcin
REUSE_ALV_HIERSEQ_LIST_DISPLAY.

Y veremos el siguiente reporte ALV:

Das könnte Ihnen auch gefallen