*&---------------------------------------------------------------------*
*& Report ZALV_HIERARCHY
*&
*&---------------------------------------------------------------------*
REPORT ZALV_HIERARCHY.
*----------------------------------------------------------------------*
* TYPE-POOLS
*----------------------------------------------------------------------*
TYPE-POOLS: SLIS.
*----------------------------------------------------------------------*
* DATA
*----------------------------------------------------------------------*
* HEADER
DATA: BEGIN OF GH_HEADER,
ID(4) TYPE N,
NAME(10) TYPE C,
EXPAND TYPE C,
END OF GH_HEADER.
DATA GT_HEADER LIKE TABLE OF GH_HEADER.
* ITEM
DATA: BEGIN OF GH_ITEM,
ID(4) TYPE N,
ABAP(2) TYPE N,
CPP(2) TYPE N,
JAVA(2) TYPE N,
END OF GH_ITEM.
DATA GT_ITEM LIKE TABLE OF GH_ITEM.
DATA:
* Field catalog
GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
* ALV Layout
GH_LAYOUT TYPE SLIS_LAYOUT_ALV,
* key info between HEADER & ITEM output table
GH_KEYINFO TYPE SLIS_KEYINFO_ALV,
* name of HEADER output table
GW_TNAM_HEAD TYPE SLIS_TABNAME,
* name of ITEM output table
GW_TNAM_ITEM TYPE SLIS_TABNAME.
DATA: GW_REPID LIKE SY-REPID.
*----------------------------------------------------------------------*
* INITIALIZATION
*----------------------------------------------------------------------*
INITIALIZATION.
GW_REPID = SY-REPID.
GW_TNAM_HEAD = 'GT_HEADER'.
GW_TNAM_ITEM = 'GT_ITEM'.
* define keyinfo
CLEAR GH_KEYINFO.
GH_KEYINFO-HEADER01 = 'ID'.
GH_KEYINFO-ITEM01 = 'ID'.
*----------------------------------------------------------------------*
* START-OF-SELECTION
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM GET_OUTTAB.
PERFORM SET_FIELDCAT.
PERFORM DISPLAY_ALV.
*&---------------------------------------------------------------------*
*& Form DISPLAY_ALV
*&---------------------------------------------------------------------*
* Hierarchical sequential list output
*----------------------------------------------------------------------*
FORM DISPLAY_ALV.
* make ALV list expandable
GH_LAYOUT-EXPAND_FIELDNAME = 'EXPAND'.
GH_LAYOUT-DETAIL_INITIAL_LINES = 'X'.
* in the beginning,expnad all items
GH_LAYOUT-EXPAND_ALL = 'X'.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GW_REPID
IS_LAYOUT = GH_LAYOUT
IT_FIELDCAT = GT_FIELDCAT
I_TABNAME_HEADER = GW_TNAM_HEAD
I_TABNAME_ITEM = GW_TNAM_ITEM
IS_KEYINFO = GH_KEYINFO
TABLES
T_OUTTAB_HEADER = GT_HEADER
T_OUTTAB_ITEM = GT_ITEM
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
WRITE SY-SUBRC.
ENDIF.
ENDFORM. " DISPLAY_ALV
*&---------------------------------------------------------------------*
*& Form GET_OUTTAB
*&---------------------------------------------------------------------*
* Get data of Output Table
*----------------------------------------------------------------------*
FORM GET_OUTTAB.
* HEADER output table
GH_HEADER-ID = '001'.
GH_HEADER-NAME = 'JONY'.
APPEND GH_HEADER TO GT_HEADER.
GH_HEADER-ID = '002'.
GH_HEADER-NAME = 'SUNNY'.
APPEND GH_HEADER TO GT_HEADER.
* ITEM output table
GH_ITEM-ID = '001'.
GH_ITEM-ABAP = 90.
GH_ITEM-CPP = 90.
GH_ITEM-JAVA = 88.
APPEND GH_ITEM TO GT_ITEM.
GH_ITEM-ID = '002'.
GH_ITEM-ABAP = 96.
GH_ITEM-CPP = 96.
GH_ITEM-JAVA = 96.
APPEND GH_ITEM TO GT_ITEM.
ENDFORM. " GET_OUTTAB
*&---------------------------------------------------------------------*
*& Form SET_FIELDCAT
*&---------------------------------------------------------------------*
* set filed catalog
*----------------------------------------------------------------------*
FORM SET_FIELDCAT.
DATA:
LH_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
* HEADER FIELDS
LH_FIELDCAT-FIELDNAME = 'ID'.
LH_FIELDCAT-SELTEXT_M = 'ID'.
LH_FIELDCAT-TABNAME = GW_TNAM_HEAD.
APPEND LH_FIELDCAT TO GT_FIELDCAT.
LH_FIELDCAT-FIELDNAME = 'NAME'.
LH_FIELDCAT-SELTEXT_M = 'NAME'.
LH_FIELDCAT-TABNAME = GW_TNAM_HEAD.
APPEND LH_FIELDCAT TO GT_FIELDCAT.
LH_FIELDCAT-FIELDNAME = 'EXPAND'.
LH_FIELDCAT-NO_OUT = 'X'.
LH_FIELDCAT-TABNAME = GW_TNAM_HEAD.
APPEND LH_FIELDCAT TO GT_FIELDCAT.
* ITEM FIELDS
CLEAR LH_FIELDCAT.
LH_FIELDCAT-FIELDNAME = 'ABAP'.
LH_FIELDCAT-SELTEXT_M = 'ABAP'.
LH_FIELDCAT-TABNAME = GW_TNAM_ITEM.
APPEND LH_FIELDCAT TO GT_FIELDCAT.
LH_FIELDCAT-FIELDNAME = 'CPP'.
LH_FIELDCAT-SELTEXT_M = 'CPP'.
LH_FIELDCAT-TABNAME = GW_TNAM_ITEM.
APPEND LH_FIELDCAT TO GT_FIELDCAT.
LH_FIELDCAT-FIELDNAME = 'JAVA'.
LH_FIELDCAT-SELTEXT_M = 'JAVA'.
LH_FIELDCAT-TABNAME = GW_TNAM_ITEM.
APPEND LH_FIELDCAT TO GT_FIELDCAT.
ENDFORM. " SET_FIELDCAT
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/238575/viewspace-1006912/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/238575/viewspace-1006912/