✒️ABAP El ALV jerárquico y el agrupamiento
ABAP El ALV jerárquico y el agrupamiento
Lección 8: ALV Jerárquico y Agrupamiento
1.- Agrupamiento en un ALV
Podemos agrupar los registros que mostramos en un ALV. Para ello, declaramos una tabla 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 ,
Antes de llamar a la function del ALV, cargamos la tabla TI_SORT con los registros en el orden 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 TABLES t_outtab = ti_usuarios.
Ahora podríamos ejecutar el reporte.
2.- 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 de cabecera y posiciones, debe haber como mínimo un campo en común.
En es caso siguiente, el campo común es CARRID, que es la compañía aérea.
*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 detalle
DATA: BEGIN OF ti_detalle OCCURS 0,
carrid LIKE sflight-carrid,
connid LIKE sflight-connid,
fldate LIKE sflight-fldate,
price LIKE sflight-price,
currency LIKE sflight-currency,
planetype LIKE sflight-planetype,
END OF ti_detalle.
Debemos declarar una estructura del tipo SLI_KEYINFO_ALV que será ST_KEYINFO y contendrá el campo clave que une las dos tablas internas.
* Tabla y estructura del catalogo
DATA: ti_catalogo TYPE slis_t_fieldcat_alv,
st_catalogo TYPE slis_fieldcat_alv,
* Estructura para la configuración de la salida
st_layout TYPE slis_layout_alv,
* Campo Clave
st_keyinfo TYPE slis_keyinfo_alv.
Ahora cargamos las tablas internas de cabecera y detalle con un juego de datos para la compañía aérea ARG
* FORM CARGAR_DATOS
*-----------------------------------------------------------------------
FORM cargar_datos.
CLEAR: ti_cabecera, ti_detalle.
REFRESH: ti_cabecera, ti_detalle.
* CABECERA 1
ti_cabecera-carrid = 'ARG'.
ti_cabecera-carrname = 'Aerolineas Argentinas'.
APPEND ti_cabecera.
* DETALLE 1
ti_detalle-carrid = 'ARG'.
ti_detalle-connid = '1010'
 
 
 
Sobre el autor
Publicación académica de Juan Hern?ndez, en su ámbito de estudios para la Carrera Consultor ABAP.
Juan Hern?ndez
Profesión: Programador Inform?tico - Espa?a - Legajo: XQ15K
✒️Autor de: 125 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: PartTime
Certificación Académica de Juan Hern?ndez