🚀PROMO #PLANCARRERA2024 - 🔥Bonificaciones, Precios Congelados y Cuotas

 X 

✒️ABAP El ALV jerárquico y el agrupamiento

ABAP El ALV jerárquico y el agrupamiento

ABAP El ALV jerárquico y el agrupamiento

CATALOGO ALV AUTOMATICO, LOGOS, ENCABEZADOS Y STATUS.

Creación del catálogo en forma automática:

Para crear el catálogo en forma automática se hace con la función REUSE_ALV_FIELDCATALOG_MERGE.

Como ejemplo el código para la creación automática sería el siguiente:

v_repid = sy-repid.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = v_repid

i_internal_tabname = 'TI_USUARIOS'

i_client_never_display = 'X'

i_inclname = v_repid

CHANGING

ct_fieldcat = ti_catalogo[]

EXCEPTIONS

inconsistent_interface =1

program_error = 2

OTHERS =3.

Si creamos el catálogo en forma automática debemos declarar la tabla interna utilizando LIKE y haciendo referencia a campos de una tabla base de datos existente. Así.

*Declarar así para usar el MERGE en el catalogo

DATA: BEGIN OF ti_usuarios OCCURS 0,

dni LIKE ztabla_usuarios-dni,

nombre_ape LIKE ztabla_usuarios-nombre_ape,

estado_usu LIKE ztabla_usuarios-estado_usu,

dirección LIKE ztabla_usuarios-dirección,

codigo_postal LIKE ztabla_usuarios-f_nacimiento,

estado_civil LIKE ztabla_usuarios-estado_civil,

END OF ti_usuarios.

Lo otro que debemos hacer es configurar el editor, para que se retrinja la cantidad de caracteres de ancho de la pantalla a 72. Para hacer esto vamos al menu Utilidades / Opciones/ Editor ABAP/ Editor / Y tildamos Long. lineas compatib descend (72).

Utilización 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.

*Tabla y estructura para la cabecera

ti_header TYPE slis_t_listheader,

st_header TYPE slis_listheader.

Antes de completar el catálogo, vamos a llenar la tabla TI_HEADER con el encabezado del Reporte, el tipo de reporte y la fecha del sistema. Así.

DATA: v_fecha(10) TYPE c.

CONCATENATE sy-datum 6(2) sy-datum 4(2)

sy_datum(4) INTO v_fecha SEPARATED BY '/'. "Esto se hace para mostrar la fecha separada "por /

st_header-typ = 'H'.

st_header-info = 'Listado de Usuarios'.

APPEND st_header TO ti_header-

CLEAR st_header.

st_header-typ = 'S'.

st_header-key = 'Tipo de reporte: '.

st_header-info = 'ALV'.

APPEND st_header TO ti_header.

CLEAR st_header.

st_header-typ = 'S'.

st_header-key = 'Fecha: '.

st_header-info = v_fecha.

APPEND st_header TO ti_header.

CLEAR st_header.

Luego, agregamos en la llamada a la función del ALV, el parámetro 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.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = v_repid

it_fieldcat = ti_catalogo[]

i_callback_top_of_page = 'TOP_OF_PAGE'

is_layout =st_layout

TABLES

t_outtab = ti_usuarios.

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

FORM top_of_page.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = ti_header

i_logo = 'ENJOYSAP_LOGO'.

ENDFORM. "top_of_page

Transacción SE78: Sirve para ver los logos disponibles en el sistema o cargar nuevos.

Otra forma para subir logos es a través de la transacción OAER.

1.En nombre clase, introducimos pictures.

2.tipo de clase: OT

3.Clave del objeto, nombre que se le quiere dar al logo en mayusculas.

se ejecuta la transacción

4.Luego seleccionamos documento estandar, a través de este podemos seleccionar y subir el archivo de nuestra pc al servidor, para usarlo en un encabezado de un alv.

5.Si deseamos agregar la imagen a una orden de transporte vamos a la opción documentos, transportar.

3.Utilización de Status GUIs

Para poder utilizar un Status GUI en un reporte ALV, se agrega en la llamada a la función del ALV el parámetro exporting I_CALLBACK_PF_STATUS_SET, con el literal 'PF_STATUS', que será el nombre de la subrutina que declare la utilización del Status GUI y el parámetro exportig I_CALLBACK_USER_COMMAND con el literal 'USER_COMMAND', que será el nombre de la subrutina que se ejecute para capturar la acción realizada por el usuario.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = v_repid

i_callback_pf_status_set = 'PF_STATUS'

i_callback_user_command = 'USER_COMMAND'

it_fieldcat = ti_catalogo []

i_callback_top_of_page = 'TOP_OF_PAGE'

is_layout = st_layout

TABLES

t_outtab = ti_usuarios.

Ahora definimos la subrutina PF_STATUS que setea el status.

FORM pf_status USING rt_extab TYPE slis_t_extab.

SET PF-STATUS '0100'.

ENDFORM. "PF STATUS

Vamos a crear en el status, un botón con la descripción "Usuarios activos" y el código USU_ACTI.

También en las Teclas de función (Function Keys) del status, agregamos los códigos para poder navegar para atrás, volver a la pantalla principal o salir del programa. Cuando creamos estos botones, debemos acordarnos de setearlos con Tipo de Función (Functio Type) igual a "E", sino no funcionarán como esperamos.

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

FORM user_command USING r_ucomm TYPE syucom

rs_selfield TYPE slis_selfield.

CASE r_ucomm.

WHEN 'USU_ACTI'.

ENDCASE.

ENDFORM. "user command

Agrupamiento en un ALV

Podemos agrupar los registros que mostramos en un ALV.

Debemos declarar una tabla del tipo SLIS_T_SORTINFO_ALV y una estructura del tipo SLIS_SORTINFO_ALV.

*Tabla y estructura para ordenamiento

ti_sort TYPE slis_t_sortinfo_alv,

st_sort TYPE slis_sortinfo_alv,

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

CLEAR st_sort.

st_sort_spos = 1. "Orden del agrupamiento

st_sort-fieldname = 'ESTADO_CIVIL'. "Nombre del campo que agrupa

APPEND st_sort TO ti_sort.

Ahora debemos completar el parámetro exporting IT_SORT con nuestra tabla interna TI_SORT

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = v_repid

i_callback_pf_status_set = 'PF_STATUS'

i_callback_user_command = 'USER_COMMAND'

it_fieldcat =ti_catalogo[]

i_callback_top_of_page = 'TOP_OF_PAGE'

is_layout = st_layout

it_sort = ti_sort

TABLAS

t_outtab = ti_usuarios.

ALV JERÁRQUICO.

Estos se utilizan cuando tenemos que mostrar en un reporte, datos de cabecera y de posición.

En las declaraciones de las tablas internas de cabecera y posiciones, debe hacer como mínimo un campo en común.

Para el siguiente caso el campo en común es CARRID.

*Tabla interna de la cabecera

DATA: BEGIN OF ti_cabecera OCCURS 0,

carrid LIKE scarr-carrid,

carrname LIKE scarr-carrname,

END OF ti_cabecera.

*Tabla interna de posiciones

DATA: BEGIN OF ti_detalle OCCURS 0,

carrid LIKE sflight-carrid,

connid LIKE sflight-carrid,

fldate LIKE sflight-fldate,

price LIKE sflight-price,

currency LIKE sflight-currency,

planetypr LIKE sflight-planetype,

END OF ti_detalle.

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.

*Campo Clave

st_keyinfo TYPE slis_keyinfo_alv.

Ahora vamos a cargar las tablas internas de cabecera y detalle con un juego de datos para la compañía aérea ARG.

*CABECERA 1

ti_cabecera-carrid = 'ARG'

APPEND ti_cabecera.

*Detalle 1

ti_detalle-carrid = 'ARG'.

ti_detalle-connid = '1010'.

APPEND ti_detalle.

*Detalle 2

ti_detalle-carrid = 'ARG'.

ti_detalle-connid = '1020'.

APPEND ti_detalle.

Luego crearemos el catálogo del ALV para ambas tablas internas, sumando los campos de ambas tablas en la tabla del catálogo 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 vínculo con la tabla de detalles.

CLEAR st_keyinfo.

st_keyinfo-header01 = 'CARRID'.

st_keyinfo-item01 = 'CARRID'.

Por ultimo se ejecuta la función REUSE_ALV_HIERSEQ_LIST_DISPLAY.

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

i_callback_program = sy-repid

i_callback_pf_status_set = 'PF_STATUS'

it_fieldcat = ti_catalogo[]

i_tabname_header = 'TI_CABECERA'

i_tabname_item = 'TI_DETALLE'

is_keyinfo = st_keyinfo

TABLES

t_outtab_header = ti_cabecera

t_outtab_item = ti_detalle

EXCEPTIONS

program_error =1

OTHERS = 2.

En un ALV tipo jerárquico no es posible usar el evento TOP-OF-PAGE por lo que no se puede generar una cabecera con titulos y logos.

Tampoco se puede usar el botón de exportar a excel.


 

 

 


Sobre el autor

Publicación académica de Walter Giovanny Montoya García, en su ámbito de estudios para la Carrera Consultor ABAP.

SAP Master

Walter Giovanny Montoya García

Profesión: Administrador de Sistemas Informáticos - Colombia - Legajo: UX58H

✒️Autor de: 55 Publicaciones Académicas

🎓Cursando Actualmente: Consultor ABAP Nivel Inicial

🎓Egresado de los módulos:

Certificación Académica de Walter Montoya

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "El ALV jerárquico y el agrupamiento" de la mano de nuestros alumnos.

SAP SemiSenior

Resumen Lección: ALV Jerárquico y Agrupamiento Agrupamiento de 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. ALV Jerárquico Como dijimos anteriormente, los ALV Jerárquicos se utilizan cuando tenemos que mostrar en un reporte, datos de cabecera y de posición. En las declaraciones de las tablas internas de cabecera y posiciones, debe haber como mínimo un campo en común.

Acceder a esta publicación

Creado y Compartido por: Alexander José Tovar Rodríguez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Lección: ALV jerárquico y agrupamiento 1. AGRUPAMIENTO EN UN ALV Los registros que se agrupan en un ALV es cuando se declara una tabla del tipo slis_t_sortinfo_alv y una estructura slis_sortinfo_alv Posteriormente se carga la tabla ti_sort con los registros en el orden en el que se desea agrupar 2. ALV JERÁRQUICO Los ALV jerárquicos son usados cuando se tiene que mostrar en un reporte, datos de cabecera y de posición. En las declaraciones de las tablas internas de cabecera y posición debe haber al menos un campo en común. TIPS: En un reporte ALV de tipo jerárquico no podrá utilizarse el evento top of page, por lo cual no se podrá generar una cabecera con títulos y...

Acceder a esta publicación

Creado y Compartido por: Javier Mirabal

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


El ALV (List Viewer) jerárquico es una variante del ALV tradicional que permite mostrar datos en una estructura jerárquica, similar a un árbol, en lugar de una simple lista plana. Esto es especialmente útil cuando tienes datos que están relacionados en una jerarquía, como categorías y subcategorías, cuentas y subcuentas, etc. En SAP ABAP, puedes crear reportes ALV jerárquicos para presentar datos de manera más estructurada y fácil de entender. Características del ALV Jerárquico: Estructura de Árbol: El ALV jerárquico presenta los datos en una estructura de árbol, donde los elementos principales pueden tener elementos...

Acceder a esta publicación

Creado y Compartido por: Darling Geraldino

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

-ALV JERÁRQUICO Y AGRUPAMIENTO. Podemos agrupar los registros de un ALV declarando una tabla SLIS_T_SORTINFO_ALV y una estructura SLIS_SORTINFO_ALV Antes de llamar a la función ALV se carga la TI con los registros e indicando el órden st_sort-spos = 1. "Órden del agrupamiento st_sort-fieldname = 'ESTADO_CIVIL' Completar el parámetro con tabla interna exporting IT_SORT = TI_SORT Al ejecutar el reporte se verá la agrupación por Estado Civil -ALV JERÁRQUICO Se utilizan cuando en un reporte hay datos de cabecera y muchos de posiciones, debe existir al menos uno en común. Se declara una estructura del sig tipo: st_keyinfo TYPE SLIS_KEYINFO_ALV. Se crea el catálogo ALV para...

Acceder a esta publicación

Creado y Compartido por: Armando Mayo Marquez / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

1- Agrupamiento en una ALV Podemos agrupar los registros que mostramos en un ALV declarando una tabla del tipo SLIST_T_SORTINFO_ALV y una estrutura del tipo SLIS_SORTINFO_ALV Completar el parámetro exporting IT_SORT con nuestra tabla interna TI_SORT 2- ALV jerárquico Audio Tips 1: en un ALV jerárquico no es posible utilizar el evento TOP SPAGE por lo que no será posible establecer una cabecera con títulos y logos tal como lo vemos hecho en los ALV de tipo Grilla. Otra limitación que presentan los ALV jerárquicos es que en ellos no se puede utilizar el boton de exportación de datos a excel debido a las diferencias que existen engre el formato de la cabecera y el formato de cada registro....

Acceder a esta publicación

Creado y Compartido por: Claudio Marcelo Dario Haikel

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

ALV Jerárquico y Agrupamiento 1. Agrupamiento en un ALV - Declarar tabla del tipo SLIS_T_SORTINFO_ALV (Tabla de SAP usada para crear tablas internas para agrupamiento de reportes ALV). - Declarar estructura de tipo SLIS_SORTINFO_ALV (Estructura estándar SAP para crear estructuras para agrupamiento de reportes ALV) - Antes de llamar a función del ALV, se carga la tabla con registros en el orden en el que se requiere agrupar. - Completar parámetro IT_SORT de función con tabla interna creada para agrupamiento. 2. ALV Jerárquico - ALV jerárquicos se usan cuando se quiere mostrar en reporte datos de cabecera y de posición - En declaraciones de tablas internas de cabecera y posición...

Acceder a esta publicación

Creado y Compartido por: Darwin Enrique Terraza Berdugo / Disponibilidad Laboral: PartTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Leccion 8/9: ALV JERÁRQUICO Y AGRUPAMIENTO 1. Agrupamiento de un ALV Para agrupar registros que se muestran en un ALV se declara una tabla del tipo SLIS_T_SORTINFO_ALV y una estructura de tipo SLIS_SORTINFO_ALV Luego cargar la tabla TI_SORT con los registros en el orden que los deseamos agrupar. Debemos completar el parametro exportinf IT_SORT con la tabla interna TI_SORT. Finalmente, se ejecuta el reporte. 2. ALV JERÁRQUICO. Recalcar que estos ALV se utilizan cuando se tiene que mostrar en un reporte datos de cabecera y de posicion. Debemos declarar una estructura del tipo SLIS_KEYINFO_ALV, que será ST_KEYINFO y contendra el campo claque que une a las dos tablas internas. ahora vamos a cargar las tablas...

Acceder a esta publicación

Creado y Compartido por: Ruben Santiago Cuenca Balanza / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

El ALV jerárquico y el agrupamiento El agrupamiento en un ALV Podemos agrupar los registros que mostramos en un reporte ALV de modo que varios registros que presentan el mismo valor para un campo en particular, se muestran de forma agrupada por ese campo. Para ello debemos declarar la tabla interna TI_SORT del tipo SLIS_T_SORTINFO_ALV y la estructura WA_SORT del tipo SLIS_SORT INFO_ALV Dentro del evento START-OF-SELECTION y antes de llamar el módulo de funciones que ejecuta el reporte ALV vamos a declarar la subrutina Dentro de la subrutina vamos a cargar la tabla interna con los registros en el orden en el que deseamos agrupar Podemos agrupar un reporte ALV por tantos campos tenga la tabla interna de salida del...

Acceder a esta publicación

Creado y Compartido por: Alejandra Daniela Naranjo Belmonte

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

UNIDAD 5.8 El agrupamiento de un ALV Podemos agrupar registros que se muestran en un ALV para ello se declara un tabla de tipo SLIS_T_SORTINFO_ALV y una estructura del tipo SLIS_SORTINFO_ALV SLIS_T_SORTINFO_ALV : ES LA TABLA ESTANDAR DE SAP QUE SE UTILIZA PARA CREAR TABLAS INTERNAS PARA EL ARUPAMIENTO DE REPORTES ALV. SLIS_SORTINFO_ALV: ES LA ESTRUCTURA DE SAP QUE SE UTILIZA PARA CREAR ESTRUCTURAS PARA AGRUPAMIENTO DE REPORTES. El ALV jerárquico. Debemos declarar una estructura de tipo SLIS_KEYINFO_ALV (es una estructura estándar de sap que s utiliza para la elaboración de reportes ALV jerarquicos).

Acceder a esta publicación

Creado y Compartido por: Tobias Emanuel Mareco Rojas / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

El agrupamiento en un ALV Podemos agrupar los registros que mostramos en un reporte ALV. Esta agrupación se puede hacer por tantos campos tenga la tabla interna de salida del ALV El ALV jerárquico Utilizados cuando tenemos que mostrar en un reporte datos de cabecera y de posición En las tablas internas de cabecera y de posición debe haber como mínimo un campo en común entre ambos Dado que vamos a generar el catálogo del ALV jerárquico en forma automática entonces la declaración de ambas tablas internas la realizaremos utilizando la sentencia OCCURS. En lugar de cargar manualmente los registros de ambas tablas internas podríamos realizar un...

Acceder a esta publicación

Creado y Compartido por: David Brito Melado

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 79.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!