资讯动态

ALV 选择框勾选不更新

发布时间:2026/10/8 18:26:11 来源:尧图企业网站定制
ALV 选择框勾选不更新一、需求ALV新增一个选择框字段在ALV上加一列末道工序可勾选勾了之后带进建单逻辑。代码长这样mac_fill_fcat ZLASTPROCESS TEXT-269 2 X X . 末道工序 * 字段名 标题 长度 edit hotspot checkbox ref_f ref_t事件那边也齐活CALL METHOD grid1-register_edit_event EXPORTING i_event_id cl_gui_alv_gridmc_evt_enter. CALL METHOD grid1-register_edit_event EXPORTING i_event_id cl_gui_alv_gridmc_evt_modified. SET HANDLER g_alv_application-handle_data_changed FOR grid1. SET HANDLER g_alv_application-handle_data_changed_finished FOR grid1.WHEN ZLASTPROCESS的分支也写好了WHEN ZLASTPROCESS. READ TABLE it_eban INTO wa_eban INDEX wa_mod_data-row_id. IF sy-subrc 0. wa_eban-zlastprocess wa_mod_data-value. MODIFY it_eban FROM wa_eban INDEX wa_mod_data-row_id TRANSPORTING zlastprocess. ENDIF.然后跑起来点勾选框毫无反应。HANDLE_DATA_CHANGED不触发点了生成采购订单触发CHECK_CHANGED_DATAIT_EBAN-ZLASTPROCESS还是空的。二、初步排查常见情况查到什么缺edit X有缺checkbox X有没注册mc_evt_modified注册了enter和modified都注册了没SET HANDLER有没调CHECK_CHANGED_DATA调了GRID1-CHECK_CHANGED_DATA包在FM_REFRESH_ALV_CHANGE里点按钮时先执行内表字段不是CHAR1查DD03L → DD01L域ZLASTPROCESSCHAR× 1完全合规域有固定值被渲染成下拉框查DD07L无固定值单元格被样式禁用布局用了stylefname CELLSTYLE但样式表里只有ZKGLIFNR和ZQY的开关没碰这个字段三、尝试修正发现有一段意料之外的代码mac_fill_fcat宏里有这么一段DEFINE mac_fill_fcat. it_fieldcatalog-edit 4. 是否编辑 ... IF 4 X AND 7 . editX 且没给 ref_field it_fieldcatalog-f4availabl X. 就自动打上 F4 ENDIF.而我写的时候偷懒没有加ref_fieldZLASTPROCESS TEXT-269 2 X X ——editX、ref_field为空必然命中。给普通文本框挂 F4 无所谓反而方便但复选框单元格挂上 F4 之后前端不再按可勾选的复选框来渲染。后果是点击单元格时前端既不切换勾选状态也不把它登记为待提交的变更。于是后端两个通道同时落空DATA_CHANGED事件永远不会来前端根本没产生变更事件CHECK_CHANGED_DATA也无变更可取 —— 它取的是前端缓冲区里的待提交修改而缓冲区是空的。这也正好解释了一个细节如果只是事件没注册CHECK_CHANGED_DATA是能兜住的先把值捞回内表再统一处理正因为连它都捞不到才说明问题出在前端压根没把这次点击当成一次修改。四、复盘几条值得抄下来的经验1. 勾选框别挂 F4。editXcheckboxX是必要条件但不充分。如果生成 fieldcat 的宏有editX且无ref_field就自动补 F4这类逻辑勾选框列会被误伤。这类宏很常见值得回头查一遍自己的项目。2. 判断一个勾选框是不是真走事件通道看它有没有hotspot。带hotspotX的勾选框通常是靠HOTSPOT_CLICK 手工翻转 刷新实现的。它能用但不代表 checkbox-edit 通道是通的。用错对照案例会让你在错误的方向上排除掉正确的怀疑对象。3.CHECK_CHANGED_DATA捞不到值是前端没把这次点击当修改的信号。如果只是事件注册漏了CHECK_CHANGED_DATA还能兜底把值捞回来。两者同时失效说明问题在前端渲染层面不要再去后端事件逻辑里找了。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑