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
post SAP-Garson
原文链接:https://blog.csdn.net/nannl/article/details/108266608文章来自于网络,如果侵犯了您的权益,请联系站长删除!