ABAP ALV多表头,如图

这篇博客介绍了如何在ABAP中使用SLIS库创建具有双层表头的ALV报告。重点在于设置布局、排序键以及表头和项目字段,以显示采购申请号、状态、行项目等关键信息。
ABAP ALV多表头,如图 - Sun - Sun
 

*&双层设置ALV  BY XIE
*&---------------------------------------------------------------------*

REPORT  ZXIE02.
TYPE-POOLS:SLIS.

TYPES:  BEGIN OF  ty_pmapprove,
        INSTID    like eban-banfn,
*……………..
         expand TYPE xfeld,   "这句话是关键,扩展节点

        END  OF   ty_pmapprove.
 DATA: it_wflist TYPE STANDARD TABLE OF ty_pmapprove.
 data: wa_wflist TYPE  ty_pmapprove.
types: begin of ty_eban,
       INSTID    like eban-banfn,
       BNFPO like eban-BNFPO,
       LOEKZ like eban-LOEKZ,
*       ………………
        END  OF   ty_eban.
 data: ty_wflist  TYPE STANDARD TABLE OF ty_eban.
CONSTANTS:
  cns_vbak TYPE slis_tabname VALUE 'IT_WFLIST', " 第一层表头
  cns_vbap TYPE slis_tabname VALUE 'TY_WFLIST'.  "第二层项目

*FORM FRM_ALV_HEAD1 .
 DATA:
    l_rec_layout   TYPE slis_layout_alv,    "ALV layout setting
    l_rec_keyinfo  TYPE slis_keyinfo_alv,   "Key information
    l_h_tbl_sort   TYPE slis_sortinfo_alv,  "Sort key
    l_tbl_sort     TYPE slis_t_sortinfo_alv,"Sort table
    l_h_tbl_fieldcat TYPE slis_fieldcat_alv,"Field catalog work area
    l_tbl_fieldcat   TYPE slis_t_fieldcat_alv." Field catalog

* Set layout
  l_rec_layout-group_change_edit = 'X'.
  l_rec_layout-colwidth_optimize = 'X'.
  l_rec_layout-zebra             = 'X'.
  l_rec_layout-detail_popup      = 'X'.
  l_rec_layout-get_selinfos      = 'X'.

  l_rec_layout-expand_FIELDNAME = 'EXPAND'.

  l_h_tbl_sort-tabname   = 'IT_WFLIST'.
  l_h_tbl_sort-fieldname = 'INSTID'.
  l_h_tbl_sort-up        = 'X'.
  APPEND l_h_tbl_sort TO l_tbl_sort.

  l_h_tbl_sort-tabname   = 'TY_WFLIST'.
  l_h_tbl_sort-fieldname = 'INSTID'.
  l_h_tbl_sort-up        = 'X'.
  APPEND l_h_tbl_sort TO l_tbl_sort.

  l_h_tbl_sort-tabname   = 'TY_WFLIST'.
  l_h_tbl_sort-fieldname = 'BNFPO'.
  l_h_tbl_sort-up        = 'X'.
  APPEND l_h_tbl_sort TO l_tbl_sort.
*******表头************
  l_h_tbl_fieldcat-tabname     = cns_vbak.
  l_h_tbl_fieldcat-fieldname = 'INSTID'.
  l_h_tbl_fieldcat-seltext_l = '采购申请号'.
  APPEND l_h_tbl_fieldcat TO l_tbl_fieldcat.
 CLEAR l_h_tbl_fieldcat.
*…………………………………………………
l_h_tbl_fieldcat-tabname     = cns_vbak.
  l_h_tbl_fieldcat-fieldname = 'WI_STAT1'.
  l_h_tbl_fieldcat-seltext_l = '当前状态'.
  APPEND l_h_tbl_fieldcat TO l_tbl_fieldcat.
  CLEAR l_h_tbl_fieldcat.
******第二层项目***********
 l_h_tbl_fieldcat-tabname     = cns_vbap.
  l_h_tbl_fieldcat-fieldname = 'BNFPO'.
  l_h_tbl_fieldcat-seltext_l = '采购申请行项目'.
  APPEND l_h_tbl_fieldcat TO l_tbl_fieldcat.
  CLEAR l_h_tbl_fieldcat.
 l_h_tbl_fieldcat-tabname     = cns_vbap.
  l_h_tbl_fieldcat-fieldname = 'LOEKZ'.
  l_h_tbl_fieldcat-seltext_l = '删除标识'.
  APPEND l_h_tbl_fieldcat TO l_tbl_fieldcat.
  CLEAR l_h_tbl_fieldcat.
  l_h_tbl_fieldcat-tabname     = cns_vbap.
  l_h_tbl_fieldcat-fieldname = 'MATNR'.
  l_h_tbl_fieldcat-seltext_l = '物料编码'.
  APPEND l_h_tbl_fieldcat TO l_tbl_fieldcat.
*  …………………………………
   l_rec_keyinfo-header01 = 'INSTID'.
  l_rec_keyinfo-item01   = 'INSTID'.
  l_rec_keyinfo-item02   = 'BNFPO'.
   CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
    EXPORTING
      i_callback_program      = sy-cprog
      i_callback_user_command = 'USER_COMMAND'
      is_layout               = l_rec_layout
      it_fieldcat             = l_tbl_fieldcat
      it_sort                 = l_tbl_sort
      i_tabname_header        = cns_vbak
      i_tabname_item          = cns_vbap
      is_keyinfo              = l_rec_keyinfo
      i_save                  = 'A'
    TABLES
      t_outtab_header         = IT_WFLIST
      t_outtab_item           = TY_WFLIST
    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.

*ENDFORM.                    " FRM_ALV_HEAD1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值