title.rb
pCLASS zcl_my_alv DEFINITION.
PUBLIC SECTION.
METHODS: show_data.
ENDCLASS.
CLASS zcl_my_alv IMPLEMENTATION.
METHOD show_data.
DATA: lt_data TYPE STANDARD TABLE OF sflight,
lt_fcat TYPE slis_t_fieldcat_alv,
ls_fcat TYPE slis_fieldcat_alv,
ls_layout TYPE slis_layout_alv.
" 模拟数据
SELECT * FROM sflight INTO TABLE lt_data UP TO 20 ROWS.
" 构建字段目录(简单写一列)
CLEAR ls_fcat.
ls_fcat-fieldname = 'CARRID'.
ls_fcat-seltext_l = '航空公司'.
APPEND ls_fcat TO lt_fcat.
" 调用 ALV
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = 'ZALV_BRIDGE' " 关键:桥接程序名
i_callback_pf_status_set = 'SET_PF_STATUS'
i_callback_user_command = 'USER_COMMAND'
is_layout = ls_layout
it_fieldcat = lt_fcat
i_save = 'A'
TABLES
t_outtab = lt_data.
ENDMETHOD.
ENDCLASS.
title.rb
REPORT ztest_call_alv.
START-OF-SELECTION.
DATA(lo_alv) = NEW zcl_my_alv( ).
lo_alv->show_data( ).
title.rb
REPORT zalv_bridge.
FORM set_pf_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'ZSTATUS'.
ENDFORM.
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN 'REFRESH'.
MESSAGE '点击了刷新按钮' TYPE 'I'.
ENDCASE.
ENDFORM.