(4)SELECTION-SCREEN INCLUDE(调用已经存在的屏幕元素)
参照某一个已经定义的屏幕元素来创建,如下代码:
CALL SCREEN 1234.
*PARAMETERS MATNR LIKE MARA-MATNR.
*CALL SELECTION-SCREEN 1234. "调用子窗体
SELECTION-SCREEN BEGIN OF SCREEN 1111.
SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE TEXT-W01.
SELECT-OPTIONS SELO FOR SY-REPID.
SELECTION-SCREEN ULINE. "换行线
PARAMETERS PARO.
SELECTION-SCREEN END OF BLOCK block1.
SELECTION-SCREEN END OF SCREEN 1111.
SELECTION-SCREEN BEGIN OF SCREEN 1234.
SELECTION-SCREEN INCLUDE BLOCKS block1.
SELECTION-SCREEN END OF SCREEN 1234.
程序运行界面如下:
(5)SELECTION-SCREEN ULINE
划出横线,必须用在BLOCK中才能生效。
(6)SELECTION-SCREEN SKIP n
在BLOCK中产生换行。
(7)SELECTION-SCREEN POSITION pos
在BLOCK中产生空格。
(8)SELECTION-SCREEN BEGIN OF LINE.
......
SELECTION-SCREEN END OF LINE.
将所生成的屏幕元素控制在一行。
(9)AT SELECTION-SCREEN
是PAI处理,选择屏幕显示之后,用来响应回车,F8,F1,F4等事件。
(1)选择屏幕事件,此处声明的变量是局部变量。
(2)check sy-ucomm 判断用户命令。
(3)在这个事件响应中,可以对屏幕字段进行有效性检验等,但无法修改选择屏幕。
分为以下几个方面:
... ON <field>:该语法用于控制屏幕元素输入时的遇错处理,检查具体输入字段(SELECTION-OPTIONS或PARAMETERS)是否完整或正确,若输入有错或不满足条件,其它屏幕元素会变成灰色,不接受输入直到该字段输入正确为止。
...ON VALUE-REQUEST FOR <field low/high>:SELECT-OPTIONS按选择帮助<F4>键时触发该事件。
...ON HELP-REQUEST FOR <field low/high>:SELECTION-OPTIONS按选择帮助<F1>键时键发该事件。
...ON RADIOBUTTON GROUP <radio>:单选按钮事件,必须进行整体输入检查。
...ON BLOCK <block>:框架的触发事件(控制框架中的屏幕元素值的输入)。
...OUTPUT:用于屏幕输出时的各屏幕元素值的管控(PBO处理,在选择屏幕显示之前就被调用;响应屏幕上的事件,用户回车或F8后也被调用;通过modify screen可以修改选择屏幕字段)。
...ON EXIT-COMMAND:用于响应"BACK","CANCEL","EXIT"等事件。
[For Example]
SELECT-OPTIONS SEL0 FOR SY-TVAR0.
SELECTION-SCREEN BEGIN OF BLOCK BL0.
SELECT-OPTIONS SEL1 FOR SY-TVAR1.
SELECTION-SCREEN BEGIN OF BLOCK BL1.
PARAMETERS P1 RADIOBUTTON GROUP RAD1.
PARAMETERS P2 RADIOBUTTON GROUP RAD1.
SELECTION-SCREEN BEGIN OF BLOCK BL2.
PARAMETERS P3.
SELECTION-SCREEN END OF BLOCK BL2.
SELECT-OPTIONS SEL2 FOR SY-TVAR2.
SELECTION-SCREEN END OF BLOCK BL1.
SELECTION-SCREEN END OF BLOCK BL0.
AT SELECTION-SCREEN ON SEL1.
AT SELECTION-SCREEN ON RADIOBUTTON GROUP RAD1.
AT SELECTION-SCREEN ON P3.
AT SELECTION-SCREEN ON BLOCK BL1.
AT SELECTION-SCREEN ON BLOCK BL2.