В технологии dynpro, чтобы включить экран «A» в экран «B», экран «A» должен быть определен как подэкран , а экран «B» должен определить «подэкран» область ", чтобы содержать экран" A ". логика потока экрана "B" должна содержать оператор CALL SUBSCREEN <subscreen_area> INCLUDING ...
, который относится к номеру подэкрана для включения либо статически, либо через глобальную переменную .
Как и в обычном экране, экран выбора также можно определить как подэкран, определив его как «автономный экран выбора» (оборачивая его элементы внутри операторов ABAP SELECTION-SCREEN BEGIN OF SCREEN <any-screen-number>
и SELECTION-SCREEN END OF SCREEN <any-screen-number>
) и добавив слова «КАК ПОДПИСЬ» после BEGIN OF SCREEN <any-screen-number>
). Например:
SELECTION-SCREEN BEGIN OF SCREEN 1001 AS SUBSCREEN.
PARAMETERS test AS CHECKBOX.
SELECTION-SCREEN END OF SCREEN 1001.
Если вам нужно включить существующий экран выбора, который еще не определен как подэкран, есть две основные возможности:
- Если он уже был определен как «автономный экран» (с
SELECTION-SCREEN BEGIN OF SCREEN ...
), и он должен использоваться только в качестве подэкрана, вы можете просто добавить AS SUBSCREEN
, как сказано выше.
- Если он должен использоваться как в качестве подэкрана, так и в качестве обычного экрана, то наиболее простым решением является завершение его элементов внутри блока (операторы ABAP
SELECTION-SCREEN BEGIN OF BLOCK <block ID>
и SELECTION-SCREEN END OF BLOCK <block ID>
), и определите другой экран выбора, который включает этот блок (оператор ABAP SELECTION-SCREEN INCLUDE BLOCKS <block ID>
).
Ниже приведены два примера для случая 2.
Пример 1 с экраном выбора по умолчанию (сноска 1000 cf)
REPORT zprg1.
PARAMETERS test AS CHECKBOX. " screen 1000 cf footnote
REPORT zprg1.
SELECTION-SCREEN BEGIN OF BLOCK b1000.
PARAMETERS test AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK b1000.
SELECTION-SCREEN BEGIN OF SCREEN 1001 AS SUBSCREEN.
SELECTION-SCREEN INCLUDE BLOCKS b1000.
SELECTION-SCREEN END OF SCREEN 1002.
Пример 2 с автономным экраном выбора (1002, включая CALL SUBSCREEN subarea INCLUDING 'ZPRG1' '1002'.
)
REPORT zprg1.
SELECTION-SCREEN BEGIN OF SCREEN 1002.
PARAMETERS test AS CHECKBOX.
SELECTION-SCREEN END OF SCREEN 1002.
REPORT zprg1.
SELECTION-SCREEN BEGIN OF SCREEN 1002.
SELECTION-SCREEN BEGIN OF BLOCK b1002.
PARAMETERS test AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK b1002.
SELECTION-SCREEN END OF SCREEN 1002.
SELECTION-SCREEN BEGIN OF SCREEN 1003 AS SUBSCREEN.
SELECTION-SCREEN INCLUDE BLOCKS b1002.
SELECTION-SCREEN END OF SCREEN 1003.
Сноска:
(1) Параметры экрана выбора, которые не помещены в SELECTION-SCREEN BEGIN OF SCREEN ... END OF SCREEN ...
, неявно являются частью "экрана выбора по умолчанию" (1000
). Обратите внимание, что использование SELECTION-SCREEN BEGIN OF SCREEN 1000...
приводит к синтаксической ошибке.