ABAP - OOALV 用户交互事件
- 当用户要根据ALV进行某些功能操作比如打印表单时,OOALV标准按钮无法满足用户需求的时候,就要用到自定义按钮来实现了。

- 思路:在OOALV增加一个自定义按钮,类CL_GUI_ALV_GRID提供了内置事件toolbar来完成,通过自定义按钮的命令码实现OOALV联动,类CL_GUI_ALV_GRID提供了内置事件user_command来完成。
- 实现步骤:
- 增加自定义按钮:
CLASS cl_event DEFINITION.PUBLIC SECTION.METHODS handle_toolbar FOR EVENT toolbarOF cl_gui_alv_gridIMPORTING e_objecte_interactive.
ENDCLASS.CLASS cl_event IMPLEMENTATION.METHOD handle_toolbar.DATA ls_button TYPE stb_button.CLEAR:ls_button.ls_button-function = 'PRINT'. "功能码ls_button-text = '打印成绩单'. "文本描述ls_button-icon = icon_print. "图标ls_button-quickinfo = '以PDF格式打印'."鼠标悬停在按钮时的简要说明" ls_button-disabled = 1. "是否可用 1/0"按钮类型:0默认 1菜单和缺省 2菜单 3分隔符 4单选按钮 5复选框 6菜单项ls_button-butn_type = 0.APPEND ls_button TO e_object->mt_toolbar.ENDMETHOD.ENDCLASS.
- 按钮命令事件处理
CLASS cl_event DEFINITION.PUBLIC SECTION.METHODS handle_user_command FOR EVENT user_commandOF cl_gui_alv_gridIMPORTING e_ucomm. " 用户命令码ENDCLASS.CLASS cl_event IMPLEMENTATION.METHOD handle_user_command.CASE e_ucomm.WHEN 'PRINT'.MESSAGE '你点击了自定义打印按钮' TYPE 'I'.WHEN OTHERS.ENDCASE.ENDMETHOD.
ENDCLASS.
- 通过事件处理类的实例对象给OOALVDUI的实例对象设置注册事件
CREATE OBJECT go_conEXPORTINGcontainer_name = 'CONTORL'.CREATE OBJECT go_alvEXPORTINGI_parent = go_con.DATA(lo_event) = NEW cl_event( ).SET HANDLER lo_event->handle_toolbar FOR go_alv.SET HANDLER lo_event->handle_user_command FOR go_alv.
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/502209.html
如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!