Учебное пособие по подэкранам ABAP: вызов подэкрана в SAP

Прежде чем читать это руководство, убедитесь, что вы понимаете, что такое диалоговая программа…

ВЫЗОВ ПОДЭКРАНА

  • Подэкран — это независимый экран, который отображается в области другого («главного») экрана.
  • Подэкраны позволяют встраивать один экран в другой во время выполнения. Вы можете включить несколько подэкранов на главный экран.
  • Термин «подэкран» применяется как к экрану, который вы встраиваете, так и к области главного экрана, в которую вы его помещаете. Этот урок посвящен подэкранным областям. Фактические экраны, созданные с помощью транзакции SE51, называются экранами подэкранов, если они определены в атрибутах экрана.
  • Когда вы используете подэкран, логика потока встроенного экрана также встроена в логику потока главного экрана. Следовательно, использование подэкранов на экранах похоже на использование включений в ABAP-программы.

Чтобы использовать подэкран, необходимо выполнить три простых шага

  1. Определите подэкранные области на экране
  2. Определите подходящие экраны подэкранов
  3. Включите экран подэкрана в область подэкрана.

Также вам необходимо настроить рамку подэкрана и главного экрана. Вам нужно дать ему имя в поле имени поля.

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

ПРИМЕР

Например, здесь мы определили две области подэкрана на главном экране и прикрепили два разных подэкрана к соответствующим областям. При каждом вызове главного экрана вызывается PBO главного экрана. Но перед отображением также вызываются PBO каждого экрана, прикрепленные к подэкранным областям на главном экране.

Подэкран вызова в SAP

Вы можете включить подэкран с помощью оператора CALL SUBSCREEN в логику потока главного экрана.

Чтобы включить подэкран в область подэкрана главного экрана и вызвать его логику потока PBO, используйте следующий оператор в событии PBO главного экрана:

PROCESS BEFORE OUTPUT.

CALL SUBSCREEN <area> INCLUDING [<prog>] <dynp>.

Этот оператор присваивает экрану подэкрана номер в область подэкрана под названием . Вы также можете указать программу, в которой определяется подэкран (необязательно). Если вы не укажете программу явно, система будет искать подэкран в той же программе ABAP, что и основная программа. Если соответствующий подэкран не найден, возникает ошибка времени выполнения. Логика потока PBO подэкрана также включена в тот же момент. Это может вызвать модули PBO программы ABAP, в которых определен подэкран. В конце подэкрана PBO глобальные поля из программы передаются в любые поля экрана с одинаковыми именами на подэкране. Логика потока PBO подэкрана сама может включать в себя дополнительные подэкраны.

Имя области подэкрана необходимо вводить напрямую, без кавычек. Вы можете указать имена и либо как литералы, либо как переменные. Если вы используете переменные, вы должны объявить и заполнить переменные с одинаковыми именами в программе ABAP. Номер экрана должно быть длиной 4 символа. Если вы не назначаете области подэкранный экран, он остается пустым.

Чтобы вызвать логику потока PAI подэкрана, используйте следующий оператор в логике потока PAI главного экрана:

PROCESS AFTER INPUT.

CALL SUBSCREEN <area>.

Этот оператор включает в себя логику потока PAI экрана подэкрана, включенного в область подэкрана. на мероприятии ПБО. Это может вызвать модули PAI программы ABAP, в которых определен подэкран. Данные передаются между полями с одинаковыми именами на подэкране и в программе ABAP либо при запуске события PAI, либо при соответствующих операторах FIELD в логике потока PAI на подэкране.

Вопросы для запоминания

  • Имена элементов подэкранов внутри экрана должны быть уникальными.
  • У вас не должно быть OK_CODE или FCODE, прикрепленных к подэкрану. OK_CODE главного экрана сам по себе является OK_CODE подэкрана.
  • Подэкраны не могут иметь диалоговые модули, содержащие SET TITLBAR, SET PF-STATUS, SET SCREEN, LEAVE SCREEN или LEAVE TO SCREEN. Это приведет к ошибке выполнения.
  • Вам нужно вызвать его в логике потока (как PBO, так и PAI) на главном экране.
  • CALL SUBSCREEN не разрешен в операторах CHAIN..ENDCHAIN ​​и LOOP ENDLOOP.
  • Не может быть модуля AT EXIT-COMMAND
  • Поля, которые вы используете, являются глобальными полями. Они должны быть объявлены в верхней части include
  • Если вы используете подэкраны из другого диалоговая программа передача данных не произойдет, если вы не добавите определенный код.