ABAP在开发面向对象ALV报表时,自定义工具栏的按钮怎样才能调用ALV工具栏按钮的相应函数或方法? 5
展开全部
ALV报表gui里加自定义按钮很简单的,我做过一个例子,给你参考下:
1.输出ALV时,放开i_callback_user_command 执行自定义子例程'USER_COMMAND'
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = p_repid
i_callback_pf_status_set = 'PF_STATUS_SET'
i_callback_user_command = 'USER_COMMAND'
is_layout_lvc = is_layout_lvc
it_fieldcat_lvc = it_alv_field
TABLES
t_outtab = alv_tab
2.在子例程里写上你需要的响应事件
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
**响应具体功能码
CASE r_ucomm.
WHEN 'ALL'.
LOOP AT alv_tab INTO wa_tab.
wa_tab-sel = 'X'.
MODIFY alv_tab FROM wa_tab.
ENDLOOP.
WHEN 'DEL'.
ENDCASE.
CLEAR r_ucomm.
ENDFPRM.
响应自己定义的按钮,执行对应的事件就ok了。
1.输出ALV时,放开i_callback_user_command 执行自定义子例程'USER_COMMAND'
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = p_repid
i_callback_pf_status_set = 'PF_STATUS_SET'
i_callback_user_command = 'USER_COMMAND'
is_layout_lvc = is_layout_lvc
it_fieldcat_lvc = it_alv_field
TABLES
t_outtab = alv_tab
2.在子例程里写上你需要的响应事件
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
**响应具体功能码
CASE r_ucomm.
WHEN 'ALL'.
LOOP AT alv_tab INTO wa_tab.
wa_tab-sel = 'X'.
MODIFY alv_tab FROM wa_tab.
ENDLOOP.
WHEN 'DEL'.
ENDCASE.
CLEAR r_ucomm.
ENDFPRM.
响应自己定义的按钮,执行对应的事件就ok了。
追问
首先我想通过SET_TABLE_FOR_FIRST_DISPLAY的方式显示报表,其次也不是想自定义按钮,而是想先复制ALV表格的标准STATUS GUI到自己的程序,然后调用相应的ALV事件或函数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
自己定义一个类 并写实现方法
在类里面写一个method 处理usercommand事件
handle_user_command
FOR EVENT user_command OF cl_gui_alv_grid
IMPORTING e_ucomm,
然后创建类的实例对象 CREATE OBJECT event_receiver.
注册 SET HANDLER event_receiver->handle_user_command FOR grid1.
在类里面写一个method 处理usercommand事件
handle_user_command
FOR EVENT user_command OF cl_gui_alv_grid
IMPORTING e_ucomm,
然后创建类的实例对象 CREATE OBJECT event_receiver.
注册 SET HANDLER event_receiver->handle_user_command FOR grid1.
追问
新手学习,能否说得再详细点,非常感激、期待。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把问题列具体点。
追问
使用面向对象的ALV开发报表,怎样使用自定义GUI状态里应用工具条替代 ALV报表的工具条。新手学习,希望能够说得详细点,不胜感激!
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询