SAP ALV界面数据更改怎么回车更新
前言
当ALV界面某一列数据修改时,怎么让与该列相关的数据实时更新。
一、在ALV显示函数加上回车事件
界面显示,供应商字段可修改,修改后与供应商字段值同步更新:
二、写入事件
” 关联内表
CALL FUNCTION ‘GET_GLOBALS_FROM_SLVC_FULLSCR’
IMPORTING
e_grid = l_ref_alv.
"注册回车事件 .
CALL METHOD l_ref_alv->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_modified "数据发生改变时触发data changed事件
EXCEPTIONS
error = 1
OTHERS = 2
1.创建响应事件的类及类实现
- 生命类及定义方法类处理date_changed_finished 事件
CLASS lcl_event_receiver DEFINITION .
PUBLIC SECTION .
"数据改变事件
METHODS data_changed FOR EVENT data_changed OF cl_gui_alv_grid
IMPORTING er_data_changed.
ENDCLASS . "lcl_event_receiver
CLASS lcl_event_receiver IMPLEMENTATION .
- 定义 method 方法
METHOD data_changed .
PERFORM frm_data_changed USING er_data_changed.
ENDMETHOD . "DATA_CHANGED
ENDCLASS . "lcl_event_receiver IMPLEMENTATION
2.方法的具体实现
DATA:ls_gys LIKE LINE OF lt_gys.
DATA:ls_mod LIKE LINE OF p_data_changed->mt_mod_cells.
LOOP AT p_data_changed->mt_mod_cells INTO ls_mod.
IF ls_mod-fieldname EQ ‘LIFNR’.
“ 当供应商字段改变时,更新ALV界面
" 具体代码实现
ENDIF.
ENDLOOP.
“ 更改后需要刷新
CALL FUNCTION ‘GET_GLOBALS_FROM_SLVC_FULLSCR’
IMPORTING
e_grid = l_ref_alv.
ls_stbl-row = ‘X’.
ls_stbl-col = ‘X’.
"刷新屏幕
CALL METHOD l_ref_alv->refresh_table_display
EXPORTING
is_stable = ls_stbl
EXCEPTIONS
finished = 1
OTHERS = 2.
” 获取数据后刷新的界面