- 了解Function ALV: https://blog.csdn.net/HeathlX/article/details/134879766?spm=1001.2014.3001.5501
- 程序开发步骤:
- ① TCODE:SE38创建程序
- ② 编写程序
DATA gt_spfli TYPE TABLE OF spfli.
** Layout 变量定义 (固定使用 直接粘贴复制即可)
DATA gs_layout TYPE lvc_s_layo.
** Fieldcat变量定义 (固定使用 直接粘贴复制即可)
DATA:gt_fieldcat TYPE lvc_t_fcat,
gs_fieldcat LIKE LINE OF gt_fieldcat.
** FieldCat的宏 (固定使用 直接粘贴复制即可)
DATA gv_pos TYPE i.
DEFINE %%add_fieldcat.
gv_pos = gv_pos + 1.
gs_fieldcat-col_pos = gv_pos.
gs_fieldcat-fieldname = &1.
gs_fieldcat-scrtext_m = &2.
APPEND gs_fieldcat TO gt_fieldcat.CLEAR gs_fieldcat.
END-OF-DEFINITION.
START-OF-SELECTION.
** 获取需要展示的数据
SELECT carrid " 航线代码
connid " 航班连接ID
countryfr " 国家键值
cityfrom " 起飞城市
airpfrom " 起飞机场
countryto " 国家键值
cityto " 目标城市
airpto " 目标机场
fltime " 航班时间
deptime " 启程时间
arrtime " 到达时间
distance " 距离
FROM spfli
INTO CORRESPONDING FIELDS OF TABLE gt_spfli
UP TO 20 ROWS.
** Fieldcat字段映射处理
%%add_fieldcat:'CARRID' '航线代码', "( 前面字段值不可变 后面字段描述可变 每一行都是)
'CONNID' '航班连接ID',
'COUNTRYFR' '国家键值',
'CITYFROM' '起飞城市',
'AIRPFROM' '起飞机场',
'COUNTRYTO' '国家键值',
'CITYTO' '目标城市',
'AIRPTO' '目标机场',
'FLTIME' '航班时间',
'DEPTIME' '启程时间',
'ARRTIME' '到达时间',
'DISTANCE' '距离'.
** Layout布局处理
gs_layout-cwidth_opt = 'X'. "自动优化列宽 (可以使用**在一行代码面前注释掉 看看ALV会有什么效果)
gs_layout-zebra = 'X'. "斑马纹输出
** 调用FunctionALV需要传入的参数:展示数据,FieldCat,Layout,Status
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'FRM_SET_STATUS'
is_layout_lvc = gs_layout
it_fieldcat_lvc = gt_fieldcat
TABLES
t_outtab = gt_spfli[]
EXCEPTIONS
program_error = 1
OTHERS = 2.
FORM frm_set_status USING p_extab TYPE slis_t_extab.
SET PF-STATUS 'STANDARD'.
ENDFORM.
- ③激活程序运行
显示效果: