ALV可编辑行输入数据后抓取回车事件
2013-08-07 16:30
274 查看
DATA: stbl TYPE lvc_s_stbl.
DATA: w_ref_alv TYPE REF TO cl_gui_alv_grid.
定义类
* ----------------------------------------------------------------------*
* CLASS lcl_event_receiver DEFINITION
* ----------------------------------------------------------------------*
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS handle_modify
FOR EVENT data_changed_finished OF cl_gui_alv_grid
IMPORTING e_modified et_good_cells.
ENDCLASS. "LCL_EVENT_RECEIVER DEFINITION
定义方法
* ----------------------------------------------------------------------*
* CLASS lcl_event_receiver IMPLEMENTATION
* ----------------------------------------------------------------------*
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_modify..
*-------------------------------------------------
在此处添加你自己的代码,改变传入ALV函数的那个内表的值,就能实现你的功能。
*-------------------------------------------------
* 稳定刷新
stbl-row = 'X'." 基于行的稳定刷新
stbl-col = 'X'." 基于列稳定刷新
CALL METHOD w_ref_alv->refresh_table_display
EXPORTING
is_stable = stbl.
ENDMETHOD. "HANDLE_MODIFY
ENDCLASS. "LCL_EVENT_RECEIVER IMPLEMENTATION
定义事件
*&---------------------------------------------------------------------*
*& Form FRM_SET_EVENT
*&---------------------------------------------------------------------*
FORM frm_set_event .
ws_events1-name = 'CALLER_EXIT'.
ws_events1-form = 'FRM_CALLER_EXIT'.
APPEND ws_events1 TO it_events1.
ENDFORM. " FRM_SET_EVENT
注册回车事件
*&---------------------------------------------------------------------*
*& Form F_CALLER_EXIT
*&---------------------------------------------------------------------*
FORM frm_caller_exit USING ls_data TYPE slis_data_caller_exit.
.
DATA gt_event_receiver TYPE REF TO lcl_event_receiver.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = w_ref_alv.
* 设置Dropdown List事件
CALL METHOD w_ref_alv->set_drop_down_table
EXPORTING
it_drop_down = i_ddval.
* 设置enter事件
CALL METHOD w_ref_alv->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter
EXCEPTIONS
error = 1
OTHERS = 2.
CREATE OBJECT gt_event_receiver.
SET HANDLER gt_event_receiver->handle_modify FOR w_ref_alv.
ENDFORM. "F_CALLER_EXIT
把事件表作为参数传入ALV函数中,大功告成
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'PF_STATUS_SET2'
i_callback_user_command = 'PROCESS_USER_COMMAND1'
is_layout_lvc = ws_layout1
it_fieldcat_lvc = gd_fieldcat1
i_save = 'A'
it_events = it_events1
TABLES
t_outtab = it_zman_hour_spec1
EXCEPTIONS
program_error = 1
OTHERS = 2.
DATA: w_ref_alv TYPE REF TO cl_gui_alv_grid.
定义类
* ----------------------------------------------------------------------*
* CLASS lcl_event_receiver DEFINITION
* ----------------------------------------------------------------------*
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS handle_modify
FOR EVENT data_changed_finished OF cl_gui_alv_grid
IMPORTING e_modified et_good_cells.
ENDCLASS. "LCL_EVENT_RECEIVER DEFINITION
定义方法
* ----------------------------------------------------------------------*
* CLASS lcl_event_receiver IMPLEMENTATION
* ----------------------------------------------------------------------*
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_modify..
*-------------------------------------------------
在此处添加你自己的代码,改变传入ALV函数的那个内表的值,就能实现你的功能。
*-------------------------------------------------
* 稳定刷新
stbl-row = 'X'." 基于行的稳定刷新
stbl-col = 'X'." 基于列稳定刷新
CALL METHOD w_ref_alv->refresh_table_display
EXPORTING
is_stable = stbl.
ENDMETHOD. "HANDLE_MODIFY
ENDCLASS. "LCL_EVENT_RECEIVER IMPLEMENTATION
定义事件
*&---------------------------------------------------------------------*
*& Form FRM_SET_EVENT
*&---------------------------------------------------------------------*
FORM frm_set_event .
ws_events1-name = 'CALLER_EXIT'.
ws_events1-form = 'FRM_CALLER_EXIT'.
APPEND ws_events1 TO it_events1.
ENDFORM. " FRM_SET_EVENT
注册回车事件
*&---------------------------------------------------------------------*
*& Form F_CALLER_EXIT
*&---------------------------------------------------------------------*
FORM frm_caller_exit USING ls_data TYPE slis_data_caller_exit.
.
DATA gt_event_receiver TYPE REF TO lcl_event_receiver.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = w_ref_alv.
* 设置Dropdown List事件
CALL METHOD w_ref_alv->set_drop_down_table
EXPORTING
it_drop_down = i_ddval.
* 设置enter事件
CALL METHOD w_ref_alv->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter
EXCEPTIONS
error = 1
OTHERS = 2.
CREATE OBJECT gt_event_receiver.
SET HANDLER gt_event_receiver->handle_modify FOR w_ref_alv.
ENDFORM. "F_CALLER_EXIT
把事件表作为参数传入ALV函数中,大功告成
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'PF_STATUS_SET2'
i_callback_user_command = 'PROCESS_USER_COMMAND1'
is_layout_lvc = ws_layout1
it_fieldcat_lvc = gd_fieldcat1
i_save = 'A'
it_events = it_events1
TABLES
t_outtab = it_zman_hour_spec1
EXCEPTIONS
program_error = 1
OTHERS = 2.
相关文章推荐
- ALV可编辑行输入数据后抓取回车事件
- ALV 可编辑字段的输入数据不符合条件,小数点位置不正确的问题
- 监听回车键----在文本框中输入数据后,直接回车,调用查询、登陆事件
- 在文本框输入数据后,因为有历史记录,鼠标点或者敲回车这个历史记录时,请问会触发什么JS事件
- ALV输入数据后点回车自动将焦点置…
- java中从控制台输入多行数据 按回车键输入空行结束
- 文本框输入内容回车事件
- ALV字段编辑时,输入长度受限制解决方法
- ABAP 抓取ALV数据
- 实现按钮的左键单击和右键单击事件 编辑框的回车键和ctrl+enter组合键消息响应
- 自动焦点回车输入数据
- input框输入完回车即可查询事件
- SAP ABAP alv中设置回车事件
- 文本框输入值调用回车事件
- js中对arry数组的各种操作小结 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据 web前端url传递值 js加密解密 HTML中让表单input等文本框为只读不可编辑的方法 js监听用户的键盘敲击事件,兼容各大主流浏览器 HTML特殊字符
- 在可编辑表格EditorGrid中,我选择一行已输入的数据,点击删除按钮,该行数据将被删除,然后当我点击表单提交按钮时,已经被删除的那一行数据仍然被插入数据库中
- 抓取SAP报表ALV GRID上的数据
- 验证GridView控件在编辑状态下输入的数据是否合法(不合法,不允许更新,同时弹出提示框)
- SAP ABAP ALV(LVC)的一个自定义事件(F4帮助事件,回车ENTER按钮事件)的一个实例