如图:
可以通过画屏幕即call screen或者纯代码实现。以下代码为纯代码实现方式
data flag(1) type c.
* SUBSCREEN 1
selection-screen begin of screen 100 as subscreen.
selection-screen begin of block b1 with frame.
parameters: p1(10) type c,
p2(10) type c,
p3(10) type c.
selection-screen end of block b1.
selection-screen end of screen 100.
* SUBSCREEN 2
selection-screen begin of screen 200 as subscreen.
selection-screen begin of block b2 with frame.
parameters: q1(10) type c obligatory,
q2(10) type c obligatory,
q3(10) type c obligatory.
selection-screen end of block b2.
selection-screen end of screen 200.
* STANDARD SELECTION SCREEN
selection-screen: begin of tabbed block mytab for 10 lines,
tab (20) button1 user-command push1,
tab (20) button2 user-command push2,
tab (20) button3 user-command push3
default screen 300,
end of block mytab.
initialization.
button1 = text-010.
button2 = text-020.
button3 = text-030.
mytab-prog = sy-repid.
mytab-dynnr = 100.
mytab-activetab = 'BUTTON1'.
at selection-screen.
case sy-dynnr.
when 1000.
case sy-ucomm.
when 'PUSH1'.
mytab-dynnr = 100.
mytab-activetab = 'BUTTON1'.
when 'PUSH2'.
mytab-dynnr = 200.
mytab-activetab = 'BUTTON2'.
endcase.
when 100.
message s888(sabapdocu) with text-040 sy-dynnr.
when 200.
message s888(sabapdocu) with text-040 sy-dynnr.
endcase.
module init_0100 output.
loop at screen.
if screen-group1 = 'MOD'.
case flag.
when 'X'.
screen-input = '1'.
when ' '.
screen-input = '0'.
endcase.
modify screen.
endif.
endloop.
endmodule.
module user_command_0100 input.
message s888(sabapdocu) with text-050 sy-dynnr.
case sy-ucomm.
when 'TOGGLE'.
if flag = ' '.
flag = 'X'.
elseif flag = 'X'.
flag = ' '.
endif.
endcase.
endmodule.
start-of-selection.
write: / 'P1:', p1,'Q1:', q1,
/ 'P2:', p2,'Q2:', q2,
/ 'P3:', p3,'Q3:', q3.
300屏幕是创建的,显示的是前两个屏幕的值,只要屏幕上变量名称和100,200定义相同即可。