SALV Table — Настройка PF-STATUS

На этапе создания экземпляра объекта (фабричным методом) мы определяем, как мы хотим использовать объект ALV таблицы, будет ли это полноэкранный режим, либо мы хотим поместить объект в подготовленный заранее контейнер. Данный выбор влияет на способ установки GUI статуса для ALV таблицы.

В полноэкранном режиме для установки GUI статуса необходимо использовать метод SET_SCREEN_STATUS, параметр REPORT отвечает за то из какой программы будет взят GUI статус, PFSTATUS – имя GUI статуса, SET_FUNCTIONS – определяет какие стандартные функции будут использованы в программе. Может принимать значения: C_FUNCTIONS_DEFAULT – сортировки, фильтры, выбор формата. C_FUNCTIONS_ALL – все функции ALV, C_FUNCTIONS_NONE – по умолчанию, только пользовательские функции. Константы определены в классе: CL_SALV_MODEL_BASE

Стандартный GUI статус можно взять в группе функций: SALV_METADATA_STATUS – статус: SALV_TABLE_STANDARD или  SALV_TABLE_STDPOPUP, скопировать в свою программу и расширить необходимыми функциями.

Для того чтобы динамически исключить какую либо функцию можно применить класс cl_salv_functions, но вместо метода remove_function использовать метод set_function, параметр name определяет какую функцию будем скрывать, boolean — определяет скрыта она или нет, если скрываем ставим в abap_true. Метод remove_function не работает для полно-экранного грида.

Пример измененного GUI статуса (функции начинающиеся с & являются стандартными):

Когда ALV объект создается в контейнере, для настройки функций используется класс: cl_salv_functions.  Получить экземпляр этого класса можно используя метод — get_functions( ) главного объекта ALV. Для установки функций по умолчанию можно воспользоваться методом set_default( ) или set_all( ) – для установки всех функций ALV объекта. Чтобы добавить свою функцию существует метод add_function. Ниже пример того как это сделать: