ALV刷新

本文详细介绍了ABAP中两种实现ALV报表的方式:通过CALLFUNCTION和使用CL_GUI_ALV_GRID控件。讨论了刷新ALV数据的方法,包括设置SELFIELD-REFRESH参数和调用REFRESH_TABLE_DISPLAY及CL_GUI_CFW->FLUSH方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ABAP里ALV有两种方式实现,一种方式是CALL FUNCTION: REUSE_ALV_GRID_DISPLAY, 标准按钮是包含刷新设置的,但是如果自定义功能,也就是需要设置USER_COMMAND CALL BACK程序的时候,需要对参数SELFIELD-REFRESH值设置为’X’,这样ALV的数据就会刷新显示。
第二种方式是Call Screen,防止一个custom container,再添加一个CL_GUI_ALV_GRID控件,这种方式实现的ALV刷新需要CALL METHOD Grid 空间的REFRESH_TABLE_DISPLAY方法,需要注意的是,如果Grid Control所在屏幕没有切换就要显示刷新后的数据,需要再调用 CL_GUI_CFW=>FLUSH方法,才能看到刷新后的结果。原因是REFRESH_TABLE_DISPLAY虽然刷新的界面,但是SAP GUI并不是实时更新,而是将更新的结果放在缓存中,手动调用CL_GUI_CFW=>FLUSH才能触发SAP GUI更新界面,看到刷新的结果。
有人说可以先FREE掉控件,再重新创建,这是完全没有必要的。
FORM sub_user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN ‘&IC1’. "双击事件的功能码
WHEN ‘CLEAR’.
PERFORM sub_ucomm_clear. "清空操作
ENDCASE.

  • 刷新ALV报表
  • CALL FUNCTION ‘GET_GLOBALS_FROM_SLVC_FULLSCR’
  • IMPORTING
  •  e_grid = g_grid.
    
  • CALL METHOD g_grid->check_changed_data.
  • CALL METHOD g_grid->refresh_table_display.
    rs_selfield-refresh = ‘X’.
    ENDFORM.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值