ABAP refresh_table_display刷新ALV网格并保持位置(单元格行列位置不变)

11 篇文章 1 订阅

1.方法一

FORM USER_COMMAND USING IW_UCOMM    TYPE SY-UCOMM
                        IS_SELFIELD TYPE SLIS_SELFIELD.
                        
  IS_SELFIELD-COL_STABLE = 'X'.		"列保持
  IS_SELFIELD-ROW_STABLE = 'X'.		"行保持
  IS_SELFIELD-REFRESH    = 'X'.			"是否刷新
ENDFORM.


1.方法二

FORM FRM_WHEN_CHANGED .
  DATA: IS_STABLE TYPE LVC_S_STBL.
  IS_STABLE-ROW = 'X'.	"保持行
  IS_STABLE-COL = 'X'.		"保持列

  CALL METHOD GV_GRID->REFRESH_TABLE_DISPLAY( EXPORTING IS_STABLE = IS_STABLE ).						"刷新
ENDFORM.

【ABAP系列】SAP ABAP 刷新SCREEN的方法 - 走看看

1:

* 显示ALV
CALL METHOD gr_alvgrid->set_table_for_first_display
* 刷新ALV
CALL METHOD gr_alvgrid->refresh_table_display

有2个参数,一个是行,一个是列.如果设置了相应的值,
那么对应的行,或者列,在刷新的时候,将会保持稳定,就是滚动条保持不动.

有些时候需要再调用 CL_GUI_CFW=>FLUSH方法,才能看到刷新后的结果。

2:

设置 selfield-refresh = 'X'

用的太多,不赘述。
--------------------- 

cl_gui_cfw=>flush._闫艺宸的博客-CSDN博客

 CL_GUI_CFW=>FLUSH把更新后的数据同步到SAP GUI

用法一:
REFRESH_TABLE_DISPLAY虽然刷新的界面,但是SAP GUI并不是实时更 新,而是将更新的结果放在缓存中,手动调用CL_GUI_CFW=>FLUSH才能触发SAP GUI更新界面,看到刷新的结果。
CALL METHOD cl_gui_cfw=>flush
EXCEPTIONS
cntl_system_error = 1
cntl_error = 2.
用法二:
在OO的ALV方法中,使程序重新走PBO
CALL METHOD cl_gui_cfw=>set_new_ok_code
EXPORTING
new_code = ‘REFRESH’
CALL METHOD cl_gui_cfw=>flush.
用法三:
FORM frm_refresh_dlysk_display USING pv_p_refresh.
IF g_grid_dlysk IS INITIAL.
EXIT.
ENDIF.

Refresh grid
CALL METHOD g_grid_dlysk->refresh_table_display
EXPORTING
i_soft_refresh = pv_p_refresh.

CALL METHOD cl_gui_cfw=>flush.
ENDFORM. " FRM_REFRESH_DLYSK_DISPLAY
————————————————
版权声明:本文为CSDN博主「闫艺宸」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42921800/article/details/98776432

cl_gui_cfw=>flush

  用法一:

     REFRESH_TABLE_DISPLAY虽然刷新的界面,但是SAP GUI并不是实时更新,而是将更新的结果放在缓存中,手动调用CL_GUI_CFW=>FLUSH才能触发SAP GUI更新界面,看到刷新的结果。

  CALL METHOD cl_gui_cfw=>flush
    EXCEPTIONS
      cntl_system_error = 1
      cntl_error        = 2.

   用法二:

例如下面让用户选择文件夹的代码:

CALL METHOD cl_gui_frontend_services=>directory_browse
        CHANGING selected_folder = folder.
      CALL METHOD cl_gui_cfw=>flush.

why should we call the flush method?

here is some notes about this mehtod, from About cl_gui_cfw=>flush_xyfchris的博客-CSDN博客

"In OO approach, calling a Control-method does not imply that the method is automatically executed at runtime. Initially, the system buffers methods in a queue, referred to as the Automation Queue, when they are called in the ABAP program. The execution sequence of the methods therefore remains unchanged. However, the methods are only executed if they are transferred to the frontend via Remote Function Call (RFC) using method FLUSH. This means that the Automation Queue is used to reduce the number of RFC calls required."

用法三:

在OO的ALV方法中,使程序重新走PBO

  CALL METHOD cl_gui_cfw=>set_new_ok_code
    EXPORTING
      new_code = 'REFRESH'.

  CALL METHOD cl_gui_cfw=>flush.

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值