Редко где в SAP транзакциях увидишь использование иконок на экране выбора, однако их использование может быть вполне полезным, вот например поле для выбора формата ALV выглядит более наглядным:

При этом дополнительной кодировки не требуется, достаточно указать код иконки в тексте критериев выбора:

Код иконки можно посмотреть в программе — SHOWICON.

Когда пользователь возвращается на экран выбора, данные которые были уже введены ранее сохраняются, для того чтобы программа обработки экрана выбора не сохраняла введенные значения можно воспользоваться следующим кодом:

При использовании ФМ — REUSE_ALV_FIELDCATALOG_MERGE может возникнуть ситуация, когда добавленное в каталог новое поле не будет отображено в ALV, необходимо сбросить буфер ALV, для этого используйте программу: BCALV_BUFFER_DEL_SHARED или BALVBUFDEL.

Объектная модель SALV не позволяет редактировать данные (нормальным способом), однако Вы можете обрабатывать множество других событий: нажатие на кнопки, hotspot элементы, ссылки, checkbox’ы, добавлять свои собственные функции, обрабатывать щелчки (двойные щелчки), нажатие специальных клавиш (F1,F2).

Читать далее

Приходилось ли Вам сталкиваться с ситуацией, когда стандартные ALV отчёты удовлетворяют частично Вашим потребностям, но при этом код в этих отчётах устроен слишком сложно, чтобы сразу понять всю логику выбора данных? Переписывать всю логику при этом будет достаточно накладно, но многие так и делают 🙂

Некоторые отчёты позволяют сделать обёртку над ними, они предоставляют все выбранные через них данные, получить к ним доступ можно через EXPORT TO MEMORY/IMPORT FROM MEMORY. В качестве примера может служить транзакция IA09 (программа riplko10), получить доступ к выбранным в ней данным можно следующим образом:

Читать далее

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

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

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

Читать далее

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