5-reportes ALV RESUMIDO.docx

download 5-reportes ALV RESUMIDO.docx

of 13

Transcript of 5-reportes ALV RESUMIDO.docx

1| Creacin de una variante de ejecucin

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_DISPLAYListas-> REUSE_ALV_LIST_DISPLAYJerrquico -> REUSE_ALV_HIERSEQ_LIST_DISPLAY2| Mi primer reporte ALVPASO 1ero. : Declaraciones de tipos, estructuras y tablas propias del ALVDentro 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 ALVVamos 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 ALVAhora 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 ALVArmamos 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 ALVVamos 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 ALVPor 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 automticaExisten dos formas de crearel 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 tablainterna utilizando LIKE y haciendo referencia a campos de una tablabase 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. Estolo hacemos desde la opcin de men Utilities/Settings/ABAP Editor/Editor/Downwars-Comp.Line Lenght(72).2| Utilizacin de Logos y encabezadosEn los ALV Grilla podemos agregar logos y encabezadosen 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 GUIsPara 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.Porltimo 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 ALVPodemos 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 delALV, vamos a cargar la tabla TI_SORTcon losregistros 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 JerrquicoComo 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 internasde cabecera y posiciones, debe haber como mnimo un campo en comn. En el caso que mostramosa 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 detallecon 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 areaLAN.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 ALVpara ambas tablas internas, sumando los campos de ambas tablas en la tabla del catlogo TI_CATALOGO.

Ahora tenemos que completar la estructura ST_KEYINFO. Enlos camposHEADER01 yITEM01va a ir el campode latabla de cabecera quehace de vnculo con la tablade detalles.Por ltimo, ejecutamos la funcin REUSE_ALV_HIERSEQ_LIST_DISPLAY.Y veremos el siguiente reporte ALV: