Стандартный GUI статус можно взять в группе функций: SALV_METADATA_STATUS – статус: SALV_TABLE_STANDARD или SALV_TABLE_STDPOPUP, скопировать в свою программу и расширить необходимыми функциями.
Для того чтобы динамически исключить какую либо функцию можно применить класс cl_salv_functions, но вместо метода remove_function использовать метод set_function, параметр name определяет какую функцию будем скрывать, boolean - определяет скрыта она или нет, если скрываем ставим в abap_true. Метод remove_function не работает для полно-экранного грида.
Когда ALV объект создается в контейнере, для настройки функций используется класс: cl_salv_functions. Получить экземпляр этого класса можно используя метод - get_functions( ) главного объекта ALV. Для установки функций по умолчанию можно воспользоваться методом set_default( ) или set_all( ) – для установки всех функций ALV объекта. Чтобы добавить свою функцию существует метод add_function. Ниже пример того как это сделать:
REPORT zalv_simple. PARAMETERS p_dummy. DATA: gt_data TYPE spfli_tab, " Таблица с данными go_functions TYPE REF TO cl_salv_functions, go_alv TYPE REF TO cl_salv_table. " Фабричный метод возвращяет экзмепляр ALV объекта TRY. cl_salv_table=>factory( EXPORTING r_container = cl_gui_container=>screen0 IMPORTING r_salv_table = go_alv CHANGING t_table = gt_data ). CATCH cx_salv_msg . " Установка функций (кнопок) go_functions = go_alv->get_functions( ). go_functions->set_all( abap_true ). go_functions->add_function( EXPORTING NAME = 'ADDFUNC' icon = '@01@' text = 'ДопКнопка' tooltip = 'Всплывающая подсказка' " показать alv go_alv->display( ).