SAP abap alv报表实例

这是一个sap alv报表实例

REPORT ztest005.

*定义类型组
TYPE-POOLS: abap,
            slis.

*定义ALV变量
DATA : lt_fieldcat TYPE slis_t_fieldcat_alv,
              wt_fieldcat TYPE slis_fieldcat_alv,
              ls_layout TYPE slis_layout_alv.
*定义表
TABLES:bkpf.

*定义输出表结构
TYPES:
  BEGIN OF ts_halv,
    bukrs      TYPE bkpf-bukrs, "CHAR 4 0 0 Company Code
    gjahr      TYPE bkpf-gjahr, "NUMC  4 0 0 Fiscal Year
    bldat      TYPE bkpf-bldat, "DATS  8 0 0 Posting Date in the Document
    belnr      TYPE bkpf-belnr, "CHAR  10  0 0 Accounting Document Number
  END OF   ts_halv.

*定义内表和工作区
DATA:
    ti_halv      TYPE TABLE OF ts_halv,
    tw_halv      TYPE ts_halv.

*设置查询屏幕
 SELECTION-SCREEN BEGIN OF BLOCK bl WITH FRAME TITLE TEXT-s01.
  SELECT-OPTIONS:s_bukrs  FOR bkpf-bukrs DEFAULT 'SG10',
                 s_gjahr  FOR bkpf-gjahr DEFAULT sy-datum+0(4),
                 s_bldat  FOR bkpf-bldat, "OBLIGATORY DEFAULT sy-datum,
                 s_belnr  FOR bkpf-belnr.
SELECTION-SCREEN END OF BLOCK bl.

*设置查询屏幕后的操作
START-OF-SELECTION.
*获取采购发票校验差异凭证
  PERFORM frm_get_data.
  PERFORM frm_set_data.
  PERFORM frm_display_data.
END-OF-SELECTION.

*读取数据
FORM frm_get_data.
SELECT bukrs gjahr bldat belnr
  FROM BKPF
  INTO CORRESPONDING FIELDS OF TABLE ti_halv.
ENDFORM.
*处理数据
*ALV格式设置
FORM frm_set_data.
  ls_layout-zebra = 'X'.
  ls_layout-detail_popup = 'X'.
  ls_layout-detail_titlebar = '详细信息'.
  ls_layout-f2code = '&ETA'.
  ls_layout-colwidth_optimize = 'X'.

  CLEAR: ls_layout,lt_fieldcat,wt_fieldcat.
  PERFORM frm_edit_fieldcat using:
        '1'  'bukrs' 'ti_halv' '公司',  "这里第三个参数都是it_data,所以你可以在子程序里直接赋值给第三个参数,就不用在这传参。。
        '2'  'gjahr' 'ti_halv' '年度',
        '3'  'bldat' 'ti_halv' '日期',
        '4'  'belnr' 'ti_halv' '凭证'.

  ls_layout-colwidth_optimize = 'X'. "列宽最优显示
ENDFORM.

*ALV数据显示
FORM frm_display_data.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*     I_INTERFACE_CHECK                 = ' '
*     I_BYPASSING_BUFFER                = ' '
*     I_BUFFER_ACTIVE                   = ' '
*     I_CALLBACK_PROGRAM                = ' '
*     I_CALLBACK_PF_STATUS_SET          = ' '
*     I_CALLBACK_USER_COMMAND           = ' '
*     I_CALLBACK_TOP_OF_PAGE            = ' '
*     I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*     I_CALLBACK_HTML_END_OF_LIST       = ' '
*     I_STRUCTURE_NAME                  =
*     I_BACKGROUND_ID                   = ' '
*     I_GRID_TITLE                      =
*     I_GRID_SETTINGS                   =
     IS_LAYOUT                         = ls_layout
     IT_FIELDCAT                       = lt_fieldcat
*     IT_EXCLUDING                      =
*     IT_SPECIAL_GROUPS                 =
*     IT_SORT                           =
*     IT_FILTER                         =
*     IS_SEL_HIDE                       =
*     I_DEFAULT                         = 'X'
*     I_SAVE                            = ' '
*     IS_VARIANT                        =
*     IT_EVENTS                         =
*     IT_EVENT_EXIT                     =
*     IS_PRINT                          =
*     IS_REPREP_ID                      =
*     I_SCREEN_START_COLUMN             = 0
*     I_SCREEN_START_LINE               = 0
*     I_SCREEN_END_COLUMN               = 0
*     I_SCREEN_END_LINE                 = 0
*     I_HTML_HEIGHT_TOP                 = 0
*     I_HTML_HEIGHT_END                 = 0
*     IT_ALV_GRAPHICS                   =
*     IT_HYPERLINK                      =
*     IT_ADD_FIELDCAT                   =
*     IT_EXCEPT_QINFO                   =
*     IR_SALV_FULLSCREEN_ADAPTER        =
*   IMPORTING
*     E_EXIT_CAUSED_BY_CALLER           =
*     ES_EXIT_CAUSED_BY_USER            =
    TABLES
      t_outtab                          = ti_halv
   EXCEPTIONS
     PROGRAM_ERROR                     = 1
     OTHERS                            = 2.
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.
ENDFORM.

FORM frm_edit_fieldcat  USING p_col_pos   TYPE any
                              p_fieldname TYPE any
                              p_tabname   TYPE any
                              p_seltext   TYPE any.

  wt_fieldcat-col_pos   = p_col_pos.
  wt_fieldcat-fieldname = p_fieldname.
  wt_fieldcat-tabname   = p_tabname.
  wt_fieldcat-seltext_m = p_seltext.
  APPEND wt_fieldcat TO lt_fieldcat.
  CLEAR wt_fieldcat.
ENDFORM.                    " FRM_EDIT_FIELDCAT
  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值