📘Reuse_alv_hierseq_list_display

Selector Alummnos / Empresas

Definición de Reuse_alv_hierseq_list_display

El módulo de funciones estándar de SAP REUSE_ALV_HIERSEQ_LIST_DISPLAY se utiliza para la creación de reportes ALV jerárquicos.

REPORT Z_TEST_JERARQUICO.

TABLES: ZTERC_LOGLIQ, T001.

TYPE-POOLS: SLIS.

* PARAMETROS DE SELECCION

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS:

S_BUKRS FOR ZTERC_LOGLIQ-BUKRS OBLIGATORY.

 

PARAMETERS:

P_GJAHR LIKE ZTERC_LOGLIQ-GJAHR OBLIGATORY.

 

SELECT-OPTIONS:

S_LBELN FOR ZTERC_LOGLIQ-NROLIQ,

S_MABER FOR ZTERC_LOGLIQ-AREAG,

S_ERSDA FOR ZTERC_LOGLIQ-ERSDA,

S_STATS FOR ZTERC_LOGLIQ-STATS.

SELECTION-SCREEN END OF BLOCK B1.

 

* ESTRUCTURA DEL ALV

DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,

GT_SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE,

GS_LAYOUT TYPE SLIS_LAYOUT_ALV,

GS_KEY TYPE SLIS_KEYINFO_ALV,

G_REPID LIKE SY-REPID,

GT_EVENTS TYPE SLIS_T_EVENT.

 

* TABLA INTERNA PARA EL CATALOGO DE DATOS

DATA: BEGIN OF T_ZTERC_LOGLIQ OCCURS 0.

INCLUDE STRUCTURE ZTERC_LOGLIQ.

DATA: END OF T_ZTERC_LOGLIQ.

 

DATA: BEGIN OF T_HEADER OCCURS 0,

IND,

BUKRS LIKE ZTERC_LOGLIQ-BUKRS,

AREAG LIKE ZTERC_LOGLIQ-AREAG,

END OF T_HEADER.

 

* INICIO

START-OF-SELECTION.

G_REPID = SY-REPID.

PERFORM GET_DATA.

PERFORM INIT_FIELDCAT.

PERFORM INIT_SORT.

PERFORM INIT_LAYOUT.

PERFORM INIT_KEY.

PERFORM INIT_EVENT.

PERFORM REPORTE.

 

*&---------------------------------------------------------------------*

*& Form GET_DATA

*&---------------------------------------------------------------------*

FORM GET_DATA .

SELECT * INTO CORRESPONDING FIELDS OF TABLE T_ZTERC_LOGLIQ

FROM ZTERC_LOGLIQ

WHERE BUKRS IN S_BUKRS AND

GJAHR = P_GJAHR AND

NROLIQ IN S_LBELN AND

AREAG IN S_MABER AND

ERSDA IN S_ERSDA AND

STATS IN S_STATS.

 

LOOP AT T_ZTERC_LOGLIQ.

MOVE-CORRESPONDING T_ZTERC_LOGLIQ TO T_HEADER.

COLLECT T_HEADER.

ENDLOOP.

ENDFORM. " GET_DATA

 

*&---------------------------------------------------------------------*

*& Form INIT_FIELDCAT

*&---------------------------------------------------------------------*

FORM INIT_FIELDCAT .

CLEAR GT_FIELDCAT.

REFRESH GT_FIELDCAT.

 

* CABECERA*

GT_FIELDCAT-FIELDNAME = 'BUKRS'.

GT_FIELDCAT-REF_TABNAME = 'ZTERC_LOGLIQ'.

GT_FIELDCAT-TABNAME = 'T_HEADER'.

GT_FIELDCAT-SELTEXT_L = 'Sociedad'.

GT_FIELDCAT-OUTPUTLEN = '9'.

APPEND GT_FIELDCAT.

 

GT_FIELDCAT-FIELDNAME = 'AREAG'.

GT_FIELDCAT-REF_TABNAME = 'ZTERC_LOGLIQ'.

GT_FIELDCAT-TABNAME = 'T_HEADER'.

GT_FIELDCAT-SELTEXT_L = 'Area Gestora'.

GT_FIELDCAT-OUTPUTLEN = '13'.

APPEND GT_FIELDCAT.

 

* DETALLE*

GT_FIELDCAT-FIELDNAME = 'NROLIQ'.

GT_FIELDCAT-REF_TABNAME = 'ZTERC_LOGLIQ'.

GT_FIELDCAT-TABNAME = 'T_ZTERC_LOGLIQ'.

GT_FIELDCAT-SELTEXT_L = 'Liquidación'.

GT_FIELDCAT-OUTPUTLEN = '12'.

APPEND GT_FIELDCAT.

 

GT_FIELDCAT-FIELDNAME = 'GJAHR'.

GT_FIELDCAT-REF_TABNAME = 'ZTERC_LOGLIQ'.

GT_FIELDCAT-TABNAME = 'T_ZTERC_LOGLIQ'.

GT_FIELDCAT-SELTEXT_L = 'Ejercicio'.

GT_FIELDCAT-OUTPUTLEN = '10'.

APPEND GT_FIELDCAT.

 

GT_FIELDCAT-FIELDNAME = 'ERSDA'.

GT_FIELDCAT-REF_TABNAME = 'ZTERC_LOGLIQ'.

GT_FIELDCAT-TABNAME = 'T_ZTERC_LOGLIQ'.

GT_FIELDCAT-SELTEXT_L = 'Fec. Registro'.

GT_FIELDCAT-OUTPUTLEN = '14'.

APPEND GT_FIELDCAT.

 

GT_FIELDCAT-FIELDNAME = 'UDFTIME'.

GT_FIELDCAT-REF_TABNAME = 'ZTERC_LOGLIQ'.

GT_FIELDCAT-TABNAME = 'T_ZTERC_LOGLIQ'.

GT_FIELDCAT-SELTEXT_L = 'Hra. Registro'.

GT_FIELDCAT-OUTPUTLEN = '14'.

APPEND GT_FIELDCAT.

 

GT_FIELDCAT-FIELDNAME = 'ERNAM'.

GT_FIELDCAT-REF_TABNAME = 'ZTERC_LOGLIQ'.

GT_FIELDCAT-TABNAME = 'T_ZTERC_LOGLIQ'.

GT_FIELDCAT-SELTEXT_L = 'Usuario obs.'.

GT_FIELDCAT-OUTPUTLEN = '20'.

APPEND GT_FIELDCAT.

 

GT_FIELDCAT-FIELDNAME = 'STATS'.

GT_FIELDCAT-REF_TABNAME = 'ZTERC_LOGLIQ'.

GT_FIELDCAT-TABNAME = 'T_ZTERC_LOGLIQ'.

GT_FIELDCAT-SELTEXT_L = 'Estado'.

GT_FIELDCAT-OUTPUTLEN = '7'.

APPEND GT_FIELDCAT.

 

GT_FIELDCAT-FIELDNAME = 'OBSER'.

GT_FIELDCAT-REF_TABNAME = 'ZTERC_LOGLIQ'.

GT_FIELDCAT-TABNAME = 'T_ZTERC_LOGLIQ'.

GT_FIELDCAT-SELTEXT_L = 'Observación'.

GT_FIELDCAT-OUTPUTLEN = '255'.

APPEND GT_FIELDCAT.

ENDFORM. " INIT_FIELDCAT

 

*&---------------------------------------------------------------------*

*& Form INIT_SORT

*&---------------------------------------------------------------------*

FORM INIT_SORT .

CLEAR GT_SORT.

GT_SORT-TABNAME = 'T_HEADER'.

GT_SORT-FIELDNAME = 'BUKRS'.

GT_SORT-UP = 'X'.

GT_SORT-SPOS = 1.

APPEND GT_SORT.

 

CLEAR GT_SORT.

GT_SORT-TABNAME = 'T_HEADER'.

GT_SORT-FIELDNAME = 'AREAG'.

GT_SORT-UP = 'X'.

GT_SORT-SPOS = 2.

APPEND GT_SORT.

 

CLEAR GT_SORT.

GT_SORT-TABNAME = 'T_ZTERC_LOGLIQ'.

GT_SORT-FIELDNAME = 'BUKRS'.

GT_SORT-UP = 'X'.

GT_SORT-SPOS = 1.

APPEND GT_SORT.

 

CLEAR GT_SORT.

GT_SORT-TABNAME = 'T_ZTERC_LOGLIQ'.

GT_SORT-FIELDNAME = 'AREAG'.

GT_SORT-UP = 'X'.

GT_SORT-SPOS = 2.

APPEND GT_SORT.

 

ENDFORM. " INIT_SORT

 

*&---------------------------------------------------------------------*

*& Form INIT_LAYOUT

*&---------------------------------------------------------------------*

FORM INIT_LAYOUT .

GS_LAYOUT-ZEBRA = 'X'.

GS_LAYOUT-EXPAND_FIELDNAME = 'IND'.

GS_LAYOUT-EXPAND_ALL = 'X'.

ENDFORM. " INIT_LAYOUT

 

*&---------------------------------------------------------------------*

*& Form INIT_KEY

*&---------------------------------------------------------------------*

FORM INIT_KEY .

GS_KEY-HEADER01 = 'BUKRS'.

GS_KEY-ITEM01 = 'BUKRS'.

GS_KEY-HEADER02 = 'AREAG'.

GS_KEY-ITEM02 = 'AREAG'.

ENDFORM. " INIT_KEY

 

*&---------------------------------------------------------------------*

*& Form INIT_EVENT

*&---------------------------------------------------------------------*

FORM INIT_EVENT .

DATA: C_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_PAGE',

EVENT TYPE SLIS_ALV_EVENT.

 

EVENT-NAME = SLIS_EV_TOP_OF_PAGE.

EVENT-FORM = 'TOP_PAGE'.

APPEND EVENT TO GT_EVENTS.

ENDFORM. " INIT_EVENT

 

*&---------------------------------------------------------------------*

*& Form REPORTE

*&---------------------------------------------------------------------*

FORM REPORTE .

* CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

* CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = G_REPID

IS_LAYOUT = GS_LAYOUT

IT_FIELDCAT = GT_FIELDCAT[]

IT_SORT = GT_SORT[]

I_TABNAME_HEADER = 'T_HEADER'

I_TABNAME_ITEM = 'T_ZTERC_LOGLIQ'

IS_KEYINFO = GS_KEY

IT_EVENTS = GT_EVENTS

TABLES

T_OUTTAB_HEADER = T_HEADER

T_OUTTAB_ITEM = T_ZTERC_LOGLIQ

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

ENDFORM. " REPORTE

 

*---------------------------------------------------------------------*

* FORM TOP_PAGE *

*---------------------------------------------------------------------*

FORM TOP_PAGE.

WRITE:/ TEXT-006, SY-REPID. "Reporte

WRITE:/ TEXT-007. "Descripción

 

WRITE:/115(8) TEXT-003, 124(10) SY-DATUM. "Fecha

WRITE:/115(8) TEXT-004, 124(8) SY-UZEIT. "Hora

WRITE:/115(8) TEXT-005, 124(1) SY-PAGNO. "Pagina

 

WRITE:/1(150) TEXT-002 CENTERED. "HISTORIAL DE LIQUIDACIONES

SKIP 1.

ENDFORM.