删除行后刷新ALV网格

时间:2018-02-08 13:34:53

标签: sap abap alv

因此,在删除数据库表中的特定行后,我的屏幕上不会删除它。我必须结束程序并再次启动它以查看更改。 我使用过alv->refresh( ).但这对我不起作用。有没有办法正确刷新屏幕?

2 个答案:

答案 0 :(得分:1)

refresh方法必须有一个名为is_stable的导入参数。这个结构有两个字段(rwo和col)都设置为'X':

alv->refresh( is_stable = 'XX' ).

答案 1 :(得分: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.