点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我有一个具有若干功能(双击,用户命令等)的alv网格。
现在我假装使用cl_gui_alv_grid的delay_callback事件。 p>
我已经看到了示例BCALV_TEST_GRID_EVENTS,并在程序中实现了该事件,但是它不起作用。
该事件未引发!
这是我的代码:
....
cl_event_receiver_300类定义。
公共部分。
数据:ucomm类型为sy-ucomm。
数据:selfield类型slis_selfield。
-
延迟的回调
方法handle_delayed_callback
处理cl_gui_alv_grid的事件delay_callback。
...
endclass。
class cl_event_receiver_300
-
处理delay_callback
方法handle_delayed_callback。
消息i000(zm)带有" Delayed" '。
终止方法。 "延迟回叫
结束类。
模块alv_300_display输出。
如果g_custom_container_300是初始的。
-
为以下对象创建容器 ALV网格
创建对象g_custom_container_300
导出
container_name ='CUSTOM_CONTROL_300'。
endif。
如果grid_300是初始的。
-
创建事件接收器
创建对象event_receiver_300。
-
创建ALV网格
创建对象grid_300
导出
i_appl_events''" 选择
i_parent = g_custom_container_300。
-
选择。 上校 宽度
清除gs_layout_alv。
gs_layout_alv-cwidth_opt =已选中。
gs_layout_alv-grid_title ='Contactos com o Cliente'。
gs_layout_alv-zebra ='X'。
gs_layout_alv-sel_mode ='A'。
-
唯一的标准配置 ferramentas
将cl_gui_alv_grid => mc_fc_graph附加到gt_funcoes_300。
将cl_gui_alv_grid => mc_fc_help附加到gt_funcoes_300。
附加cl_gui_alv_grid mc_mb_sum添加到gt_funcoes_300。/p>
-
D'n'D的句柄
-
gs_layout_alv-s_dragdrop-row_ddid = g_handle_alv。
-
ALV网格处理程序
为grid_300设置处理程序event_receiver_300-> handle_toolbar_set。
为grid_300设置处理程序event_receiver_300-> handle_user_command。
为grid_300设置处理程序event_receiver_300-> handle_double_click。
为grid_300设置处理程序event_receiver_300-> handle_delayed_callback
。 p>
调用方法grid_300-> register_delayed_event
导出
i_event_id = cl_gui_alv_grid => mc_evt_delayed_move_curr_cell。
-
criaçãodocatálogode campos
执行create_fieldcat_cont。
-
variante
variant_alv- 报告= sy-repid。
调用方法grid_300-> set_table_for_first_display
导出i_save ='A'
it_toolbar_clusion = gt_funcoes_300 []
i_default ='X'
i_buffer_active =''
i_bypassing_buffer =''
i_consistency_check =''
更改it_outtab = it_contactos []
it_fieldcatalog = gt_fieldcat_cont []。
-
刷新
-
调用数据
-
刷新
调用方法cl_gui_control => set_focus导出控件 = grid_300。
调用方法cl_gui_cfw => flush。
endif。
如果选择了flg_new_300。
清除flg_new_300。 p>
调用方法grid_300-> set_frontend_layout
导出is_layout = gs_layout_alv。
调用方法grid_300-> refresh_table_display。
调用方法cl_gui_control => set_focus导出控件= grid_300
调用方法cl_gui_cfw => flush。
endif。
endmodule。 " alv_300_display OUTPUT
最诚挚的问候
如果您仍在寻找可能的解决方案(13年后),或者更多(如果有人)...(我曾经)
如果不需要在ALV网格中使用右键单击上下文菜单,则可以重新设置CONTEXT_MENU_REQUEST事件的用途...
希望有帮助。 :D
您好 Bryan Sippel ,
非常感谢您的回复。 问题已解决。
现在我还有另一个任务:) :)。
关于此,
嗨,
< p>我已经在使用手柄:grid_300的handle_toolbar_set
grid_300的handle_user_command
grid_300的handle_double_click
我假装 使用delay_callback在用户单击当前选定单元格以外的其他单元格的同时在屏幕上显示文本。
最诚挚的问候,
MariaJoãoRocha
Hello Maria,
根据 documentationhttp://help.sap.com/saphelp_erp2004/helpdata/zh-cn/ee/c8e065d52611d2b468006094192192fe3/frameset.htm"> documentation>,该事件将通过< i>延迟。这可能是原因。
此外,您是否真的应该出于目的使用事件 delayed_changed_sel_callback ?
此致
Anand Mandalika。
Maria,
对于您的情况,我不确定,为什么要处理DELAYED_CALLBACK事件,而不是处理设置了事件的事件
为grid_300设置处理程序event_receiver_300-> handle_toolbar_set。
为grid_300设置处理程序event_receiver_300-> handle_user_command。
为grid_300设置处理程序event_receiver_300-> handle_double_click。
您应该为HANDLE_TOOLBAR,HANDLE_USER_COMMAND和HANDLE_DOUBLE_CLICK编写方法。 我找不到相同的代码。
此致
Ravi
注意:请标记出有用的答案。
玛丽亚,
我不确定使用DELAY CALL BACK的确切原因是什么。 您提到的事件可以通过激活直接使用。
您可以尝试删除DELAYED CALL BACK事件并查看是否获得所需的输出吗?
此致
Ravi
嗨,
延迟...,让示例程序BCALV_TEST_GRID_EVENTS运行正常,文档显示"短暂的1.5秒延迟" 。
也许还有其他方法可以满足我的需要,但我不知道该怎么做! 可以帮忙吗?
最好的问候,
MariaJoãoRocha
一周热门 更多>