REUSE_ALV_GRID_DISPLAY回调未触发:双击EBELN无法跳转ME23N
ALV字段双击跳转失效排查方案
检查ALV调用的回调参数配置
调用REUSE_ALV_GRID_DISPLAY时,必须明确传递两个关键参数:I_CALLBACK_USER_COMMAND = 'USER_COMMAND':指定处理用户命令的表单名称,注意必须大写,ABAP对标识符大小写敏感。I_CALLBACK_PROGRAM = SY-REPID:指定回调表单所在的当前程序,否则ALV无法定位到目标表单。
确认USER_COMMAND表单的定义规范
表单必须包含固定参数,格式如下,参数类型和名称不能出错:FORM user_command USING ucomm LIKE sy-ucomm selfield TYPE slis_selfield. ENDFORM.表单名称要和
I_CALLBACK_USER_COMMAND中指定的完全一致。配置EBELN为热点字段
在构建字段目录(SLIS_FIELDCAT_ALV)时,给EBELN字段设置HOTSPOT = 'X',标记该字段可触发双击事件:ls_fieldcat-fieldname = 'EBELN'. ls_fieldcat-hotspot = 'X'. APPEND ls_fieldcat TO lt_fieldcat.修正USER_COMMAND内的逻辑判断
要针对双击事件(默认功能码&IC1)和目标字段做判断,同时添加刷新标记避免ALV状态异常:FORM user_command USING ucomm LIKE sy-ucomm selfield TYPE slis_selfield. CASE ucomm. WHEN '&IC1'. IF selfield-fieldname = 'EBELN'. SET PARAMETER ID 'BES' FIELD selfield-value. CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN. ENDIF. ENDCASE. selfield-refresh = 'X'. ENDFORM.校验字段与内表的一致性
确保字段目录中EBELN的字段名和内表LT_TABELA1中的字段名拼写、大小写完全一致,否则无法匹配触发跳转逻辑。
内容的提问来源于stack exchange,提问作者Lucas Ag
相关产品推荐
相关产品推荐

