Upd Для ABAP версии 7.40, оператор move-corresponding работает с таблицами, см справку по F1.

Недавно столкнулся с проблемой невозможности отловить нажатие &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. Первое что необходимо при работе с форматами дать пользователю возможность его выбрать на экране выбора.

Читать далее