Я пытаюсь динамически построить панель инструментов в зависимости от заданных критериев благодаря событию "панель инструментов" в классе cl_gui_alv_grid.
Проблема в том, что панель инструментов получает мою пользовательскую кнопку, но как только мои критерии больше не соответствуют и я хочу удалить одну кнопку, панель инструментов не обновляется. Пример здесь ниже
"Refresh button
CLEAR ls_toolbar.
ls_toolbar-icon = icon_refresh.
ls_toolbar-quickinfo = TEXT-ref.
ls_toolbar-butn_type = 0.
ls_toolbar-text = TEXT-ref.
ls_toolbar-function = 'REFRESH'.
ls_toolbar-disabled = abap_false.
APPEND ls_toolbar TO e_object->mt_toolbar.
"Save button
IF my_criteria is false.
DELETE e_object->mt_toolbar WHERE function EQ 'SAVE'.
ELSE.
CLEAR ls_toolbar.
ls_toolbar-icon = icon_system_save.
ls_toolbar-quickinfo = TEXT-sav.
ls_toolbar-butn_type = 0.
ls_toolbar-text = TEXT-sav.
ls_toolbar-function = 'LAMA_SAVE'.
ls_toolbar-disabled = abap_false.
APPEND ls_toolbar TO e_object->mt_toolbar.
ENDIF.
Когда я создаю свой ALV, я вызываю метод lo_alv-> set_toolbar_interactive ().
Когда я вхожу в режим отладки, я вижу, что кнопка сохранения добавляется или удаляется, но она не отражается на экране после однократного отображения панели инструментов.