ABAP CHECKBOX 同时选中事件

记录一下,方便后续查找。 FM ALV启用EVENTS参数  设置监听事件

首先LAYOUT设置里面设置 字段SEL 为CHECKBOX    EDIT = 'X'  CHECKBOX =  'X'

REUSE_ALV_GRID_DISPLAY_LVC 函数 启用IT_EVENTS参数

wa_events-name = 'CALLER_EXIT'.
wa_events-form =  'FRM_DATA_CHANGED'.    “这个需要在程序中自己创建数据更改FORM
APPEND wa_events TO i_events.
 

设置事件两个事件  放在抬头定义
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.               
DATA: g_event_handler TYPE REF TO lcl_event_receiver.

CLASS lcl_event_receiver IMPLEMENTATION.
  METHOD handle_modify.
    PERFORM frm_handle_changed_finished USING e_modified et_good_cells.
  ENDMETHOD.                    "HANDLE_MODIFY
ENDCLASS.             

设置数据变更事件

FORM frm_data_changed USING i_grid TYPE slis_data_caller_exit.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      e_grid = o_grid.

* 设置enter事件
  CALL METHOD o_grid->register_edit_event
    EXPORTING
      i_event_id = cl_gui_alv_grid=>mc_evt_enter
    EXCEPTIONS
      error      = 1
      OTHERS     = 2.

  CALL METHOD o_grid->register_edit_event
    EXPORTING
      i_event_id = cl_gui_alv_grid=>mc_evt_modified
    EXCEPTIONS
      error      = 1
      OTHERS     = 2.
  CREATE OBJECT g_event_handler.
  SET HANDLER g_event_handler->handle_modify FOR o_grid.
ENDFORM.                    "FRM_DATA_CHANGED

这个FORM 就是具体的内表操作

FORM frm_handle_changed_finished  USING  i_modified i_good_cells.

  DATA: li_modi TYPE lvc_t_modi,
        lw_modi TYPE lvc_s_modi.

  DATA: lw_stable TYPE lvc_s_stbl,
        lw_s_col  TYPE lvc_s_col.

  CLEAR: lw_stable .
  CLEAR li_data.
  MOVE i_good_cells  TO li_modi.

创建临时表 获取选择的行 再读取ALV内表  根据要同时满足选择的条件 设置SEL 值

刷新ALV


DATA: o_grid          TYPE REF TO cl_gui_alv_grid.

 lw_stable-row = 'X'.
  lw_stable-col = 'X'.

  "刷新ALV
  CALL METHOD o_grid->refresh_table_display
    EXPORTING
      i_soft_refresh = 'X'
      is_stable      = lw_stable.

  CALL METHOD cl_gui_control=>set_focus
    EXPORTING
      control = o_grid.
 

      

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值