选择屏幕有单个栏位检索(PARAMETERS)和范围筛选(SELECT-OPTION)两种。
1、单个栏位检索(PARAMETERS)
语法:
parameters
[default ][lower case][obligatory]
[as checkbox][radiobutton group ]
[default ]:默认值;
[lower case]:大小写;
[obligatory]:必须输入;
[as checkbox]:以复选框形式;
[radiobutton group ]:以单选按钮形式。
例 5.8 是选择屏幕输入值,将值输出至屏幕。
【5.8】
report ytest004 .
PARAMETERS: a1(10) TYPE c,
a2 TYPE i.
WRITE: / a1,/ a2.
输出结果如图5-25 所示。
确认后输出结果如图5-26 所示。
2、范围筛选(SELECT-OPTIONS)
使用 SELECT-OPTIONS 进行多值和多范围检索。
【5.9】
REPORT YTEST005 .
DATA data1(20) TYPE c.
SELECT-OPTIONS d1 FOR data1.
LOOP AT d1.
WRITE: / 'SIGN:', d1-sign,
'OPTION:', d1-option,
'LOW:', d1-low,
'HIGH:', d1-high.
ENDLOOP.
输出结果如图5-27 所示。
确定后输出结果如图5-28 所示。
3、调整输入提示
编写完程序时,查询条件的提示默认是变量名,需要调整为中文提示,选择菜单“转到”
—>“文本元素”—>“选择文本”,如图5-29 所示。
修改参数D1 的提示,如图5-30 所示。
单击 按钮保存,然后单击按钮激活,单击按钮退回上一屏,单击按钮测试
运行,输出结果如图5-31 所示。
选择屏幕实例设计
有输入参数的程序系统自动产生一个 1000 的屏幕,在程序激活后可以通过TCODE:SE51 查看,输入TCODE:SE51,输入程序名,单击屏幕编号右端的选择按钮,选择屏幕1000,选择“布局编辑器”选项,单击修改按钮,如图5-32 所示。
确定后系统显示屏幕如图5-33 所示,该屏幕是系统自动生成的。
1、定义选择屏幕【5.10】
REPORT YTEST006.
SELECTION-SCREEN BEGIN OF SCREEN 500.
PARAMETERS data1(20) TYPE c.
SELECTION-SCREEN END OF SCREEN 500.
CALL SELECTION-SCREEN 500.
输出结果如图5-34 所示。
2、定义多个输入字段一行输出【5.11】
REPORT YTEST006.
SELECTION-SCREEN BEGIN OF LINE.
*预设
*SELECTION-SCREEN POSITION 28.
SELECTION-SCREEN COMMENT 1(10) s2.
PARAMETERS: a1(1) TYPE c,
a2(4) TYPE c,
s3(9) TYPE c.
SELECTION-SCREEN END OF LINE.
*为预设值赋值
INITIALIZATION.
s2 = '测试输入'.
输出结果如图5-35 所示。
3.单选框【5.12】
REPORT ytest006.
SELECTION-SCREEN BEGIN OF BLOCK rdg1 WITH FRAME TITLE s2.
PARAMETERS a1 RADIOBUTTON GROUP rg1.
PARAMETERS a2 RADIOBUTTON GROUP rg1.
PARAMETERS a3 RADIOBUTTON GROUP rg1.
SELECTION-SCREEN END OF BLOCK rdg1.
INITIALIZATION.
s2 = '请选择'.
输出结果如图5-36 所示。
4.为选择窗口定义按钮并响应
例 5.13 是一个比较复杂的程序,包括窗口、按钮定义、事件驱动等内容。【5.13】
REPORT ytest006.
TABLES sscrfields.
DATA done(2) TYPE c.
SELECTION-SCREEN:
BEGIN OF SCREEN 500 TITLE tit,
BEGIN OF LINE,
PUSHBUTTON 2(10) s1 USER-COMMAND c1,
PUSHBUTTON 12(10) s2 USER-COMMAND c2,
END OF LINE,
END OF SCREEN 500.
AT SELECTION-SCREEN.
CASE sscrfields-ucomm.
WHEN 'C1'.
done = 'C1'.
WHEN 'C2'.
done = 'C2'.
ENDCASE.
LEAVE TO SCREEN 0.
START-OF-SELECTION.
CALL SCREEN 500.
WRITE: '您按了:',done.
INITIALIZATION.
s1 ='按钮1'.
s2 ='按钮2'.
TIT = '为选择窗口定义按钮并响应'.
输出结果如图5-37 所示
当单击一个按钮后输出结果如图5-38 所示