关于:自动刷新ALV报告显示

2020-09-27 15:14发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨@Eitan,

我在报告中使用了您的代码(如下)来刷新alv网格,我认为它是可行的,网格中的记录正在更新,但旧记录仍在网格中,我的意思是在每次更新操作中, 记录越来越多,我的问题是旧记录也越来越多。

请让我知道可能的解决方案。

此致


CLASS:cl_event_receiver DEFINITION DEFERRED。

数据:ob_event_receiver类型参考cl_event_receiver。

数据:ob_gui_timer类型参考cl_gui_timer。

类处理程序:
* ---------------------------------------- ------------------------------ *
* --------------- -------------------------------------------------- ----- *
CLASS cl_event_receiver定义。


方法:结束
结束cl_gui_timer的活动。

ENDCLASS。 " cl_event_receiver DEFINITION
* ------------------------------------------- --------------------------- *
* ------------------ -------------------------------------------------- -*
CLASS cl_event_receiver实施。
* ------------------------------------ ---------------------------------- *
* ----------- -------------------------------------------------- --------- *
方法完成。

检查p_tmr_on情商abap_true。

ob_gui_timer-> cancel()。
ob_gui_timer-> interval = p_tmr_in。
ob_gui_timer-> run()。

*您的代码以加载alv数据。
PERFORM get_data_1。

离开屏幕100。

终结法。 "完成
* -------------------------------------------- -------------------------- *
ENDCLASS。" cl_event_receiver实施

选择屏幕:

* ---------------------------------------------- ------------------------ *
带有FRAME的Block12的选择屏幕开始。
参数:p_tmr_on TYPE timer_on AS CHECKBOX,< br> p_tmr_in类型timer_i默认60强制性。
选择屏幕结束的块block12。
* -------------------------- -------------------------------------------- *

在pbo处(在ob_gui_alv_grid-> set_table_for_first_display之后):

如果ob_gui_timer处于初始状态。
创建对象ob_gui_timer。
SET HANDLER ob_event_receiver_1->对于ob_gui_timer完成。
ENDIF。

*启动计时器。
如果p_tmr_on均衡abap_true。
ob_gui_timer-> interval = p_tmr_in。
ob_gui_timer-> run()。
ENDIF。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨@Eitan,

我在报告中使用了您的代码(如下)来刷新alv网格,我认为它是可行的,网格中的记录正在更新,但旧记录仍在网格中,我的意思是在每次更新操作中, 记录越来越多,我的问题是旧记录也越来越多。

请让我知道可能的解决方案。

此致


CLASS:cl_event_receiver DEFINITION DEFERRED。

数据:ob_event_receiver类型参考cl_event_receiver。

数据:ob_gui_timer类型参考cl_gui_timer。

类处理程序:
* ---------------------------------------- ------------------------------ *
* --------------- -------------------------------------------------- ----- *
CLASS cl_event_receiver定义。


方法:结束
结束cl_gui_timer的活动。

ENDCLASS。 " cl_event_receiver DEFINITION
* ------------------------------------------- --------------------------- *
* ------------------ -------------------------------------------------- -*
CLASS cl_event_receiver实施。
* ------------------------------------ ---------------------------------- *
* ----------- -------------------------------------------------- --------- *
方法完成。

检查p_tmr_on情商abap_true。

ob_gui_timer-> cancel()。
ob_gui_timer-> interval = p_tmr_in。
ob_gui_timer-> run()。

*您的代码以加载alv数据。
PERFORM get_data_1。

离开屏幕100。

终结法。 "完成
* -------------------------------------------- -------------------------- *
ENDCLASS。" cl_event_receiver实施

选择屏幕:

* ---------------------------------------------- ------------------------ *
带有FRAME的Block12的选择屏幕开始。
参数:p_tmr_on TYPE timer_on AS CHECKBOX,< br> p_tmr_in类型timer_i默认60强制性。
选择屏幕结束的块block12。
* -------------------------- -------------------------------------------- *

在pbo处(在ob_gui_alv_grid-> set_table_for_first_display之后):

如果ob_gui_timer处于初始状态。
创建对象ob_gui_timer。
SET HANDLER ob_event_receiver_1->对于ob_gui_timer完成。
ENDIF。

*启动计时器。
如果p_tmr_on均衡abap_true。
ob_gui_timer-> interval = p_tmr_in。
ob_gui_timer-> run()。
ENDIF。

付费偷看设置
发送
1条回答
风早神人
1楼-- · 2020-09-27 15:53

您正在显示CL_GUI_TIMER处理程序的代码,但没有显示如何处理ALV网格内容。

无论如何,您正在使用LEAVE TO SCREEN 100,但是您无需离开屏幕即可转到另一个屏幕,您需要刷新ALV网格控件的内容,即,您只需要调用alv_grid-> refresh_table_display()。

PS:请使用CODE按钮设置代码行的格式。

一周热门 更多>