ALV Header Item 多层显示

显示效果:
ALV <wbr>Header <wbr>Item <wbr>多层显示


代码参考的
http://blog.sina.com.cn/s/blog_5ccd375b0100bia3.html
格式稍作整理:
*&---------------------------------------------------------------------*
*& Report  YLM_0003
*&
*&---------------------------------------------------------------------*
*& created by lium
*& ALV Header Item 多层显示
*&---------------------------------------------------------------------*

REPORT  YLM_0003 .

TABLES EKKO , EKPO .

SELECT-OPTIONS : S_EBELN  FOR EKKO -EBELN .

TYPE-POOLS : SLIS .

DATA :  BEGIN  OF HEADERTAB  OCCURS  0 ,
    EBELN  LIKE EKKO -EBELN ,
    BSTYP  LIKE EKKO -BSTYP ,
    BSART  LIKE EKKO -BSART ,
    STATU  LIKE EKKO -STATU ,
END  OF HEADERTAB .

DATA :  BEGIN  OF ITEMTAB  OCCURS  0 ,
    EBELN  LIKE EKPO -EBELN ,
    EBELP  LIKE EKPO -EBELP ,
    MATNR  LIKE EKPO -MATNR ,
    WERKS  LIKE EKPO -WERKS ,
    MENGE  LIKE EKPO -MENGE ,
    NETPR  LIKE EKPO -NETPR ,
    PEINH  LIKE EKPO -PEINH ,
    NETWR  LIKE EKPO -NETWR ,
END  OF ITEMTAB .

DATA : I_FIELDCAT              TYPE SLIS_T_FIELDCAT_ALV .
DATA : V_REPID                    LIKE SY -REPID .
DATA : G_TABNAME_HEADER  TYPE SLIS_TABNAME ,
            G_TABNAME_ITEM      TYPE SLIS_TABNAME ,
            GS_KEYINFO              TYPE SLIS_KEYINFO_ALV .

START-OF-SELECTION .

    V_REPID  SY -REPID .

    SELECT EBELN  BSTYP  BSART  STATU
        INTO  TABLE HEADERTAB
        FROM EKKO
        WHERE EBELN  IN S_EBELN .

    IF  NOT HEADERTAB[]  IS  INITIAL .
        SELECT EBELN  EBELP  MATNR  WERKS  MENGE  NETPR  PEINH  NETWR
            INTO  TABLE ITEMTAB
            FROM EKPO
            FOR  ALL ENTRIES  IN HEADERTAB
            WHERE EBELN  HEADERTAB -EBELN .
    ENDIF .


    CALL  FUNCTION  'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
            I_PROGRAM_NAME                  V_REPID
            I_INTERNAL_TABNAME          'HEADERTAB'
            I_INCLNAME                          V_REPID
            I_BYPASSING_BUFFER          'X'
            I_BUFFER_ACTIVE                '
        CHANGING
            CT_FIELDCAT                        I_FIELDCAT
        EXCEPTIONS
            INCONSISTENT_INTERFACE  1
            PROGRAM_ERROR                    2
            OTHERS                  3 .
    IF SY -SUBRC  <>  0 .
        MESSAGE  ID SY -MSGID  TYPE SY -MSGTY  NUMBER SY -MSGNO
        WITH SY -MSGV1  SY -MSGV2  SY -MSGV3  SY -MSGV4 .
    ENDIF .

    CALL  FUNCTION  'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
            I_PROGRAM_NAME                  V_REPID
            I_INTERNAL_TABNAME          'ITEMTAB'
            I_INCLNAME                          V_REPID
            I_BYPASSING_BUFFER          'X'
            I_BUFFER_ACTIVE                '
        CHANGING
            CT_FIELDCAT                        I_FIELDCAT
        EXCEPTIONS
            INCONSISTENT_INTERFACE  1
            PROGRAM_ERROR                    2
            OTHERS                  3 .
    IF SY -SUBRC  <>  0 .
        MESSAGE  ID SY -MSGID  TYPE SY -MSGTY  NUMBER SY -MSGNO
        WITH SY -MSGV1  SY -MSGV2  SY -MSGV3  SY -MSGV4 .
    ENDIF .

    GS_KEYINFO -HEADER01  'EBELN' .
    GS_KEYINFO -ITEM01      'EBELN' .
    G_TABNAME_HEADER        'HEADERTAB' .
    G_TABNAME_ITEM            'ITEMTAB' .


    CALL  FUNCTION  'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
        EXPORTING
            I_CALLBACK_PROGRAM  V_REPID
            IT_FIELDCAT                I_FIELDCAT
            I_SAVE                          'A'
            I_TABNAME_HEADER      G_TABNAME_HEADER
            I_TABNAME_ITEM          G_TABNAME_ITEM
            IS_KEYINFO                  GS_KEYINFO
            I_BYPASSING_BUFFER  'X'
            I_BUFFER_ACTIVE        '
        TABLES
            T_OUTTAB_HEADER        HEADERTAB
            T_OUTTAB_ITEM            ITEMTAB
        EXCEPTIONS
            PROGRAM_ERROR            1
            OTHERS              2 .
    IF SY -SUBRC  <>  0 .
        MESSAGE  ID SY -MSGID  TYPE SY -MSGTY  NUMBER SY -MSGNO
        WITH SY -MSGV1  SY -MSGV2  SY -MSGV3  SY -MSGV4 .
    ENDIF .
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值