具体流程如下:
大致步骤如下:
1.定义变量,定义ALV显示的内表
DATA: w_repid LIKE sy-repid,
wa_variant LIKE disvariant,
wa_layout TYPE slis_layout_alv, "ALV格式
wa_fieldcat TYPE slis_fieldcat_alv, "字段清单内表
it_fieldcat TYPE TABLE OF slis_fieldcat_alv,
it_events TYPE slis_t_event. "ALV事件
DATA: gs_layout TYPE slis_layout_alv.
DATA: f_title TYPE lvc_title.
f_title = '采购信息记录历史报表'.
2.定义ALV格式控制
2.1ALV显示样式
wa_layout-zebra = 'X'.
w_repid = sy-repid.
wa_layout-no_vline = space.
wa_layout-detail_initial_lines = 'X'.
* wa_layout-box_fieldname = 'FLAG'.
wa_layout-colwidth_optimize = 'X'.
wa_layout-detail_popup = 'X'."是否弹出详细信息窗口
wa_layout-f2code = '&ETA'. "设置触发弹出详细信息窗口的功能码,这里是双击
2.2 显示字段清单
DEFINE hout.
col_pos = col_pos + 1.
wa_fieldcat-tabname = 'it_out_ls[]'.
wa_fieldcat-fieldname = '&1'.
wa_fieldcat-seltext_m = &2.
wa_fieldcat-col_pos = col_pos.
wa_fieldcat-outputlen = &3.
wa_fieldcat-datatype = '&4'.
* wa_fieldcat-do_sum = '&5'.
wa_fieldcat-edit = &5.
wa_fieldcat-lzero = 'X'.
wa_fieldcat-no_zero = ''.
wa_fieldcat-no_sign = ''.
wa_fieldcat-icon = ''.
* wa_fieldcat-fieldname = 'ZTXT1'.
APPEND wa_fieldcat TO it_fieldcat.
END-OF-DEFINITION.
hout ebeln '采购订单号' 10 char '' .
hout matnr '物料编码' 20 char '' .
hout txz01 '物料描述' 20 char '' .
hout matkl '物料组' 10 char '' .
hout wgbez '物料组描述' 10 char '' .
hout lifnr '供应商代码' 10 char '' .
hout name1 '供应商名称' 40 char ''.
hout ekgrp '采购组' 10 char ''.
hout ztxt1 '订单笔数' 10 char 'X'.
hout ztxt2 '平均生产周期' 10 char ''.
hout budat '采购订单收货日期' 10 char ''.
hout aedat '采购订单下达日期' 10 char ''.
3.显示ALV
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* i_callback_program = w_repid
* i_callback_pf_status_set = 'PF_STATUS_SET'
* i_callback_user_command = 'FRM_USER_COMMAND'
** I_STRUCTURE_NAME = 'SFLIGHT'
* i_grid_title = f_title
is_layout = wa_layout
it_fieldcat = it_fieldcat[]
* i_default = 'X'
* i_save = 'A'
* is_variant = wa_variant
* it_events = it_events
* it_sort = it_sort[]
TABLES
t_outtab = it_out[].
4.疑惑点:宏定义的ALV字段清单如何设置可以编辑呢?