Обычно подэкраны вставляются на экране выбора через создание вкладок по следующему принципу:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN. PARAMETERS: p1 TYPE c LENGTH 10, p2 TYPE c LENGTH 10, p3 TYPE c LENGTH 10. SELECTION-SCREEN END OF SCREEN 100. SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN. PARAMETERS: q1 TYPE c LENGTH 10, q2 TYPE c LENGTH 10, q3 TYPE c LENGTH 10. SELECTION-SCREEN END OF SCREEN 200. SELECTION-SCREEN: BEGIN OF TABBED BLOCK mytab FOR 10 LINES, TAB (20) button1 USER-COMMAND push1 DEFAULT SCREEN 100, TAB (20) button2 USER-COMMAND push2 DEFAULT SCREEN 200, END OF BLOCK mytab. INITIALIZATION. button1 = 'Selection Screen 1'. button2 = 'Selection Screen 2'. |
Но что делать, если нам нужен только один подэкран и без рамки табуляции? Для этого можно воспользоваться следующим «хаком»:
Создаем экран с типом подэкрна.
Рисуем его содержимое, а далее в программе пишем такой код:
1 2 3 4 5 6 |
SELECTION-SCREEN: BEGIN OF TABBED BLOCK mytab FOR 20 LINES, END OF BLOCK mytab. INITIALIZATION. mytab-prog = sy-cprog. mytab-dynnr = 9001. |
Пример подэкрана: