ALV可编辑行输入数据后抓取回车事件

 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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值