Обновить сетку 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.