因此,在我删除数据库表中的特定行后,它不会在我的屏幕上删除。我必须结束程序并重新启动它才能看到更改。我用过alv->refresh( ).
,但这对我不起作用。有没有办法正确刷新屏幕?
问问题
10829 次
2 回答
1
refresh 方法必须有一个名为 is_stable 的导入参数。此结构有两个字段(rwo 和 col)都设置为“X”:
alv->refresh( is_stable = 'XX' ).
于 2018-02-08T13:44:13.893 回答
0
如果上面的答案不起作用,您可以使用此方法,它从全局内存中获取当前 ALV。
METHOD refresh_alv.
DATA: ref_grid TYPE REF TO cl_gui_alv_grid, valid TYPE c.
IF ref_grid IS INITIAL.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = ref_grid.
ENDIF.
IF NOT ref_grid IS INITIAL.
ref_grid->check_changed_data(
IMPORTING
e_valid = valid ).
ENDIF.
IF valid IS NOT INITIAL.
ref_grid->refresh_table_display( ) .
ENDIF.
ENDMETHOD.
于 2018-02-20T07:44:04.063 回答