为什么在ALV处理用户命令事件后未触发ALV网格处理数据更改事件?

2020-09-23 02:25发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我正在尝试使用ALV工具栏按钮选择/取消选择行,然后我需要从处理数据更改事件中捕获更改的数据,以便在此事件中验证数据。

当我在alv中更改选择标志字段时,其触发句柄数据已发生更改,这很不好,但为什么实际上在处理用户命令事件后它却未被触发。

注意:我尝试将GridModified属性设置为手动,它触发了一些东西,但是它无法捕获更改的数据内容,只是触发了处理数据更改的事件。

谢谢。

(14.2 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我正在尝试使用ALV工具栏按钮选择/取消选择行,然后我需要从处理数据更改事件中捕获更改的数据,以便在此事件中验证数据。

当我在alv中更改选择标志字段时,其触发句柄数据已发生更改,这很不好,但为什么实际上在处理用户命令事件后它却未被触发。

注意:我尝试将GridModified属性设置为手动,它触发了一些东西,但是它无法捕获更改的数据内容,只是触发了处理数据更改的事件。

谢谢。

(14.2 kB)
付费偷看设置
发送
2条回答
SC_Yao
1楼-- · 2020-09-23 03:09

嗨,

您可以检查您是否在代码中使用了以下内容,

调用方法gv_alvgrid-> register_edit_event

导出i_event_id = cl_gui_alv_grid => mc_evt_modified。

调用方法gv_alvgrid-> set_ready_for_input

导出i_ready_for_input = 1。

设置处理程序go_evnt_handler-> handle_data_change for gv_alvgrid。

谢谢

Naveen

微wx笑
2楼-- · 2020-09-23 03:06

嗨,

我已从以下代码中注册了可编辑alv所需的事件;

 CLASS lcl_event IMPLEMENTATION。

   方法handle_data_changed。
     PERFORM handle_data_changed使用er_data_changed。
   终结法。  " HANDLE_DATA_CHANGED

   方法handle_hotspot_click。
     使用e_row_id e_column_id,执行handle_hotspot_click。
   终结法。  " HANDLE_HOTSPOT_CLICK

   方法handle_toolbar。
     PERFORM handle_toolbar更改e_object e_interactive。
   终结法。  " handle_toolbar

   方法handle_user_command。
     使用e_ucomm执行handle_user_command。
   终结法。  " handle_user_command

 ENDCLASS。  " lcl_event IMPLEMENTATION

 ******************************************************  ********
   设置处理程序go_handler-> handle_data_changed FOR go_grid_item。
   设置处理程序go_handler-> handle_hotspot_click FOR go_grid_item。
   设置处理程序go_handler-> handle_toolbar FOR go_grid_item。
   设置处理程序go_handler-> handle_user_command FOR go_grid_item。

   呼叫方法go_grid_item-> set_table_for_first_display
     出口
       i_bypassing_buffer ='X'
       is_layout = gs_layout
       is_variant = gs_variant
       i_save ='A'
       it_toolbar_clusion = gt_exclude
     改变
       it_outtab = gt_itab_0301 []
       it_fieldcatalog = gt_fcat []
     例外情况
       invalid_parameter_combination = 1
       程序错误= 2
       too_many_lines = 3
       其他= 4。
   IF sy-subrc NE 0。
     消息ID sy-msgid类型'E'编号sy-msgno
           与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
   其他。
     呼叫方法go_grid_item-> register_edit_event
       出口
         i_event_id = cl_gui_alv_grid => mc_evt_modified
       例外情况
         错误= 1
         其他= 2。
    万一。


 

通过链接或单击此处。

https://drive.google.com/file/d/1egv5amgshOwnYd_I5BMfac2X1_yjLS1a/view?usp = sharing

感谢您的宝贵答复。

一周热门 更多>