ALV Header Item 多层显示

来源:互联网 发布:程序员教程 第四版 编辑:程序博客网 时间:2024/05/17 01:05
显示效果:
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 EKKOEKPO.

SELECT-OPTIONSS_EBELN FOR EKKO-EBELN.

TYPE-POOLSSLIS.

DATABEGIN OF HEADERTAB OCCURS 0,
  EBELN LIKE EKKO-EBELN,
  BSTYP LIKE EKKO-BSTYP,
  BSART LIKE EKKO-BSART,
  STATU LIKE EKKO-STATU,
END OF HEADERTAB.

DATABEGIN 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.

DATAI_FIELDCAT       TYPE SLIS_T_FIELDCAT_ALV.
DATAV_REPID          LIKE SY-REPID.
DATAG_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
原创粉丝点击