一个ALV报表的模板

本文档提供了一个SAP ALV报表的示例代码,包括字段分类、排序设置、用户命令处理等,用于快速开发复杂的ALV报表。示例中详细定义了字段属性,并展示了如何设置报表头部信息和响应用户命令。
摘要由CSDN通过智能技术生成

仅此用来开发报表程序拷贝使用,其中需要很多部分更改。

 

此ALV类型稍微有点复杂的。

type-poolsslis.
DATAfieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
DATAsortable TYPE slis_t_sortinfo_alv WITH HEADER LINE.
DATAlayout   TYPE slis_layout_alv.

form sub_catalog .
  layout-colwidth_optimize 'X'.
  layout-zebra 'X'.
  layout-box_fieldname 'SELECT'.

*  layout-f2code = '&ETA'.
*  layout-info_fieldname = 'COLOR'.

  DEFINE fieldcatset.
    fieldcat-col_pos =   &1.
    fieldcat-fieldname &2.  "字段名
    fieldcat-seltext_l &3.  "长文本
    fieldcat-emphasize &4.  "颜色
    fieldcat-just      &5.  "居中
    fieldcat-no_zero   &6.  "不带前导零
    fieldcat-hotspot   &7.  "连接
    fieldcat-decimals_out &8."小数位
    fieldcat-fix_column &9"固定列
*    fieldcat-no_out    =  &10.
    append fieldcat.
  END-OF-DEFINITION.

  fieldcatset 'STATUS'      '状态'         ''  ''   '' '' '' '' .
  fieldcatset 'BUKRS'       '公司代码'         ''  ''   '' '' '' '' .
  fieldcatset 'GJAHR'       '年度'          ''  ''   '' '' '' '' .
  fieldcatset 'BELNR'       '凭证号'         ''  ''  'X'  '' '' '' .
  fieldcatset 'BLART'       '凭证类型'         ''  ''  ''  '' '' '' .
  fieldcatset 'BLDAT'       '凭证日期'      ''  ''  ''  '' '' '' .
  fieldcatset 'BUDAT'       '记账日期'         ''  ''  ''  '' '' '' .
  fieldcatset 'PPNAM'       '预制人'        ''  ''  ''  '' '' '' .
  fieldcatset 'USNAM'       '记账人'        ''  ''  ''  '' '' '' .
  fieldcatset 10 'BKTXT'       '摘要'          ''  ''  ''  '' '' '' .

*  fieldcat-col_pos  = 0.
*  fieldcat-fieldname = 'SELECT'.
*  fieldcat-seltext_l = '选择打印'.
*  fieldcat-checkbox  = 'X'.
*  fieldcat-edit      = 'X'.
*  append fieldcat.

  CLEAR sortable.
  sortable-fieldname 'BELNR'.
  sortable-up 'X'.
  sortable-down ''.
  sortable-subtot 'X'.
  APPEND sortable.



*&---------------------------------------------------------------------*
*&      Form  set_pf_status
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->RT_EXTAB   text
*----------------------------------------------------------------------*
FORM set_pf_status USING rt_extab TYPE slis_t_extab.
  datawa_extab like line of rt_extab.
  wa_extab-fcode '&RNT_PREV'.
  append wa_extab to rt_extab.
  wa_extab-fcode '&VEXCEL'.
  append wa_extab to rt_extab.

  set pf-status 'STANDARD_FULLSCREEN' EXCLUDING rt_extab.   "copy from saplkkbl

ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  user_command
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->R_UCOMM      text
*      -->RS_SELFIELD  text
*----------------------------------------------------------------------*
FORM user_command  USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield.
  RS_selfield-refresh 'X'"ALV被修改时会自动刷新,没有修改不进行刷新
  CASE r_ucomm.
    WHEN '&IC1'.
*      RS_SELFIELD-REFRESH = 'X'.
*      READ TABLE it_show   INDEX  rs_selfield-tabindex.
*      case rs_selfield-fieldname.
*      when 'MATNR'.
*      set parameter id 'BLN' field it_show-belnr.
*      set parameter id 'BUK' FIELD it_show-bukrs.
*      SET PARAMETER ID 'GJR' FIELD it_show-budat+0(4).
*      CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
*      ENDCASE.
    when '&PRT'.
      perform sub_getdata.
      perform sub_print.
  ENDCASE.
  CLEAR r_ucomm.

ENDFORM.                    "user_command
*-------------------------------------------------------------------*
* Form  TOP-OF-PAGE                                                 *
*-------------------------------------------------------------------*
* ALV Report Header                                                 *
*-------------------------------------------------------------------*
FORM TOP-OF-PAGE.
**ALV Header declarations
  DATAT_HEADER TYPE SLIS_T_LISTHEADER,
        WA_HEADER TYPE SLIS_LISTHEADER,
        T_LINE LIKE WA_HEADER-INFO,
        LD_LINES TYPE I,
        LD_LINESC(10TYPE C.
  datatype i.
*** Title
**  WA_HEADER-TYP  = 'H'.
**  WA_HEADER-INFO = '配额与实际采购额对比表'.
**  APPEND WA_HEADER TO T_HEADER.
**  CLEAR WA_HEADER.
*** Date
  clear n.
  describe table it_show lines n.
  WA_HEADER-TYP  'S'.             " H = Header, S = Selection, A = Action
  WA_HEADER-KEY '条目数:'.
  wa_header-info n.
  APPEND WA_HEADER TO T_HEADER.
*  CLEAR: WA_HEADER.
*  WA_HEADER-TYP  = 'S'.             " H = Header, S = Selection, A = Action
*  WA_HEADER-KEY = '本期期间:'.
*  read table s_eindt index 1.
*  CONCATENATE  s_eindt-low+0(4) '.' s_eindt-low+4(2) '.' s_eindt-low+6(2) '--'
*               s_eindt-high+0(4) '.' s_eindt-high+4(2) '.' s_eindt-high+6(2) INTO WA_HEADER-INFO.
*  APPEND WA_HEADER TO T_HEADER.
*  CLEAR: WA_HEADER.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY T_HEADER.
ENDFORM.                    "top-of-page



 DATAl_repid LIKE sy-repid.
  l_repid sy-repid.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program       l_repid
      i_callback_pf_status_set 'SET_PF_STATUS'
      i_callback_user_command  'USER_COMMAND'
      I_CALLBACK_TOP_OF_PAGE   'TOP-OF-PAGE'
*      i_grid_title             = l_grid_title
      is_layout                layout
      it_fieldcat              fieldcat[]
      it_sort                  sortable[]
      i_save                   'A'
      i_default                'X'
    TABLES
      t_outtab                 it_show
    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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值