Обновить сетку ALV после удаления строки

Поэтому после того, как я удалил определенную строку в таблице базы данных, она не удаляется на моем экране. Я должен закончить программу и запустить ее снова, чтобы увидеть изменения. Я использовал alv->refresh( ). но это не работает для меня. Есть ли способ правильно обновить экран?

2 ответа

Метод обновления должен иметь импортирующий параметр с именем is_stable. Эта структура имеет два поля (rwo и col), оба из которых имеют значение "X":

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

Если ответ выше не работает, вы можете использовать этот метод, он получает текущий 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.
Другие вопросы по тегам