Недавно столкнулся с проблемой невозможности отловить нажатие &F03 (BACK) при использовании полно-экранного режима SALV таблицы. Выход оказался весьма простым: в скопированном GUI статусе вместо стандартного кода &F03 поставить EXIT. Все, при этом в событии ADDED_FUNCTION стало возможно обработать данную команду. Как альтернативу можно использовать получение экземпляра класса cl_gui_alv_greed через ФМ:

И назначение обработчика событию BEFORE_USER_COMMAND.

В настоящее время SALV объекты не предоставляют стандартных средств для подключения возможности редактирования. Но в некоторых случаях можно исхитриться и получить желаемый результат. Рассмотрим небольшой пример. Необходимо предоставить пользователю возможность обработки записей в таблице. Пользователь выделяет нужные записи в таблице и нажимает кнопку обработки, которую мы заранее добавили в GUI статус. Таким образом он совершает два действия: выделение и нажатие на кнопку обработки. А что если попробовать сократить его действия до одной операции? В этом случае мы можем использовать checkbox поля.

Читать далее

Когда Вы сталкиваетесь с задачей предоставить пользователю возможность выбирать одно (или несколько) значений из внутренних таблиц на экране выбора (или на экранах) можно воспользоваться удобным классом-оберткой  CL_RECA_GUI_F4_POPUP, вместо написания например средств поиска. С помощью данного класса мы можем определить заголовок всплывающего окна с данными, фильтры, отображаемые поля, сортировки и многое другое.

В случае когда в вашем ALV объекте сосредоточено большое количество полей, при определении форматов могут возникать трудности поиска необходимого поля. Чтобы облегчить данный поиск вы можете объединять поля в группы, выглядит это следующим образом:

Читать далее

Для настройки колонок в ALV первым делом необходимо получить ссылку на объект класса: CL_SALV_COLUMNS. Данный класс отвечает за общие для всех колонок настройки, такие как: оптимизация ширины, порядок колонок. Получить ссылку на объект можно методом get_columns главного объекта ALV. Для изменения индивидуальных колонок необходимо получить ссылку на объект требуемой колонки. Для этого воспользоваться методом get_column( ‘ИмяКолонки’ ) из объекта отвечающего за все колонки, полученного ранее.

Читать далее

Настроить внешний вид ALV объекта можно используя класс:  cl_salv_display_settings.  C его помощью можно задать: отображение вертикальных/горизонтальных линий, заголовок таблицы, включить отображение в полоску и т.п. Пример того как с ним работать ниже:

Альтернативой данному способу настройки внешнего вида может служить использование форматов.

Формат ALV определяет: сортировки, группировки, внешний вид, настройку оптимизации колонок и т.п. Для выбора форматов служит класс  cl_salv_layout_service. Для настройки сохранения и привязки к ALV объекту класс cl_salv_layout. Первое что необходимо при работе с форматами дать пользователю возможность его выбрать на экране выбора.

Читать далее

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

Читать далее