🚀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 Senior

ALV Jerárquico y Agrupamiento. SLIS_T_SORTINFO_ALV: Tabla estándar de SAP que se utiliza para crear tablas internas para agrupamiento de reportes ALV. SLIS_SORTINFO_ALV: Estructura estándar de SAP que se utiliza para crear estructuras para agrupamiento de reportes ALV. IT_SORT: Parámetro exporting de la funciones standars que se utilizan para la creación de reportes ALV, que permite el agrupamiento de los campos de la tabla de salida del reporte. ALV Jerárquico. SLIS_KEYINFO_ALV:Estructura estándar de SAP que se utiliza para los reporteros ALV jerárquicos. REUSE_ALV_HIERSEQ_LIST_DISPLAY: Función estándar de SAP que se utiliza para la creación de reportes...

Acceder a esta publicación

Creado y Compartido por: Rafael Razo

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

SAP Master

ALV JERÁRQUICO Y AGRUPAMIENTO. SLIS_T_SORTINFO_ALV: Tabla estándar de SAP que se utiliza para crear tablas internas para el agrupamiento de reportes ALV. IT_SORT: Parámetro exporting de la función estándar que se utiliza para la creación de reportes ALV, que permiten el agrupamiento de los campos de la tabla de salida del reporte. SLIS_KEYINFO_ALV; Estructura estándar de SAP que se utiliza para los reportes ALV jerárquicos. En los reportes de este tipo no es posible generar cabeceras con títulos y títulos, tampoco es posible utilizar el botón de exportación a excel debido a la diferencia de formatos entre los datos de cabecera y el detalle.

Acceder a esta publicación

Creado y Compartido por: Juan Santamaria Borja

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

SAP Senior

Unidad 5 - Leccion 8 - ALV Jerárquico y Agrupamiento En los ALV Jerárquicos, No es posible utilizar el evento top of page, no se puede generar una cabecera con titulos y logos con el alv de grilla. No se puede utilizar el boton de exportar datos a excel.

Acceder a esta publicación

Creado y Compartido por: Matias Ciutat

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

SAP SemiSenior

ALV Jerárquico y agrupamiento. Agrupamiento en un ALV. Podemos agrupar los registros que mostramos en un ALV. Para ello, declaramos una tabla del tipo SLIS T STORTINFO ALV y una estructura de tipo SLIS SORTINFO ALV. Luego antes de llamar a la función del AVL, vamos a cargar la tabla TI_SORT con los registros en el orden en el que deseamos agrupar. Ahora debemos completar el parámetro exporting IT SORT con nuestra tabla intena TI SORT . ALV Jerárquico. Se utilizan cuando tenemos que mostrar en un reporte datos de cabecera y de posición. En las declaraciones de las tablas internas y de cabecera y posiciones, debe haber como mínimo un cargo en común. Debemos declarar una estructura del tipo SLIS...

Acceder a esta publicación

Creado y Compartido por: Fabio Gallo

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

SAP Expert


Se pueden agrupar los reigstros en un ALV declarando una tabla SLIS_T_SORTINFO_ALV y una estructura SLIS_SORTINFO_ALV donde se define el orden de agrupamiento y el nombre del campu. Los ALV jerárquico se usan cuando se debe mostrar en un reporte los datos de bacecera y posición, donde debe haber al menos un campo en común. Se declara una estructura del tipo SLIS_KEYINFO_ALV que contiene el campo clave que une las dos tablas internas.

Acceder a esta publicación

Creado y Compartido por: Daniel Alejandro Monteros Segura

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

SAP Master

1 - Agrupamiento en un ALV. Para agrupar los registros mostrados en un ALV, declaramos una tabla del tipo SLIS_T_SORTINFO_ALV y una estructura tipo SLIS_SORTINFO_ALV. 2 - ALV Jerárquico. Los ALV Jerárquicos se utilizan cuando tenemos que mostrar en un reporte, datos de cabecera y de detalle. En las declaraciones de las tablas internas de cabecera y detalle, debe haber como mínimo un campo en común. Se debe declarar una estructura del tipo SLIS_KEYINFO_ALV que contendrá el campo clave que une a las dos tablas. Limitaciones de un ALV Jerárquico: No es posible utilizar el evento TOP-OF-PAGE, por lo tanto no es posible generar una cabecera con títulos y logos como en los ALV Grilla. No se...

Acceder a esta publicación

Creado y Compartido por: Calixto Gutiérrez

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

SAP Senior

- ALV Jerárquico y Agrupamiento - Agrupamiento en un ALV Para agrupar los registros que mostramos en un ALV, declaramos una tabla del tipo SLIS_T_SORTINFO_ALV y una estructura del tippo SLIS_SORTINFO_ALV. Antes de llamar a la función del ALV, vamos a cargar la tabla con los registros en el orden en el que deseamos agrupar. Ahora debemos completar el parámetro exporting con nuestra tabla interna. Ejecutamos el reporte y veremos la agrupación. - ALV Jerárquico Los ALV jerárquicos se utilizan cuando tenemos que mostrar en un reporte, datos de cabecera y de posición. En esta declaraciones debe de haber por lo menos un campo en común. Debemos declarar una estructura del tipo SLIS_KEYINFO_ALV...

Acceder a esta publicación

Creado y Compartido por: Sandra Erika Bernabe Abreu

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

SAP Senior

Lección: ALV Jerárquico y Agrupamiento 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 cargamos la tabla TI_SORT con los registros en el orden en el que deseamos agrupar. Ahora debemos completar el parámetro exporting IT SORT con nuestra tabla interna TI_SORT Al ejecutar veremos la agrupación por Estado Civil. 2. ALV Jerárquico Como dijimos anteriormente, los ALV Jerárquicos se utilizan cuando tenemos que mostrar en un reporte datos de cabecera y posición. En las declaraciones de las tablas internas de cabecera y posiciones, debe haber como mínimo...

Acceder a esta publicación

Creado y Compartido por: Pedro Alejandro Arroyo Gutierrez

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

SAP Senior

Lección: ALV Jerárquico y Agrupamiento 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 función del ALV, vamos a cargar la tabla TI_SORT con los registros en el orden en el que deseamos agrupar Ahora debemos completar el parámetro exporting IT SORT con nuestra tabla interna TI SORT Finalmente, si ejecutamos el reporte, veremos la agrupación por Estado Civil 2) ALV Jerárquico 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...

Acceder a esta publicación

Creado y Compartido por: Aida Cortina Fernandez

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

SAP Senior

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. SLIS T SORTINFO ALV: tabla estándar de SAP que se utiliza para crear tablas internas para agrupamiento de reportes ALV. SLIS SORTINFO ALV: Estructura estándar de SAP que se utiliza para crear estructuras para agrupamiento de reportes ALV. ALV Jerárquico 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: Luis Manuel Olivier Melo

 


 

👌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!