ALV data change事件处理
Function alv的先将data change 的事件名字及form名字放到gt_event中然后传到Function中,最后在perform中写对应的代码即可,参考如下:
DATA:
ls_layout TYPE lvc_s_layo.
DATA: i_grid_settings TYPE lvc_s_glay.
DATA: gt_events TYPE slis_t_event,
gs_event TYPE slis_alv_event.
i_grid_settings-edt_cll_cb = 'X'.
ls_layout-zebra = 'X'.
* ls_layout-cwidth_opt = 'X'.
ls_layout-ctab_fname = 'CELLTAB'.
ls_layout-box_fname = 'SEL'.
MOVE 'DATA_CHANGED' TO gs_event-name.
MOVE 'DATA_CHANGED' TO gs_event-form.
APPEND gs_event TO gt_events.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'FRM_PF_STATUS_SET'
i_callback_user_command = 'FRM_USER_COMMAND'
i_grid_settings = i_grid_settings
is_layout_lvc = ls_layout
it_fieldcat_lvc = gt_fieldcat
it_events = gt_events
TABLES
t_outtab = gt_out
EXCEPTIONS
program_error = 1
OTHERS = 2.
FORM data_changed USING p_er_data_changed TYPE REF TO cl_alv_changed_data_protocol.
FIELD-SYMBOLS:<fs_out> TYPE gy_out.
DATA: ls_zpp_mot_mps_list TYPE zpp_mot_mps_list.
DATA: ls_modi TYPE lvc_s_modi.
DATA: l_grid TYPE REF TO cl_gui_alv_grid.
DATA: ls_stable TYPE lvc_s_stbl.
ls_stable-row = 0.
ls_stable-col = 0.
LOOP AT p_er_data_changed->mt_good_cells INTO ls_modi.
READ TABLE gt_out ASSIGNING <fs_out> INDEX ls_modi-row_id .
IF sy-subrc = 0.
IF ls_modi-fieldname = 'GSTRP_C'.
<fs_out>-gstrp_c = ls_modi-value.
<fs_out>-icon_change = icon_led_yellow.
<fs_out>-edit = 'U'.
ENDIF.
ENDIF.
ENDLOOP.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = l_grid.
CALL METHOD l_grid->refresh_table_display
EXPORTING
is_stable = ls_stable.
CLEAR p_er_data_changed->mt_good_cells.
ENDFORM. " DATA_CHANGED
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!