选择屏幕是通过ABAP语句由系统生成的屏幕,不是程序员绘制的,因而元素位置较为固定,selection-screen语句提供进行一些格式化功能,用于部分的改善选择屏幕的外观。
1、多个元素在选择屏幕同一行输出语句
selecction-screen begin of line,
.....
selection-screen end of line.
使用该选择屏幕中不会自动显示选择屏幕元素的说明文字(变量名或相关文本元素)要显示说明文字,必须要与comment选项一起使用。当把几个元素定位在一行中时,可以在selection-screen语句的pos(len)中省略位置说明pos,对象元素将定位在行中的当前位置,此时不可以把/选项与格式选项pos(len)一起使用。
在将多个元素集中在一行输出之后,可以通过position附加项,把选择屏幕中元素按照指定的位置输出:
selection-screen position pos.
只能在selection-screen 语句中的begin of line 和end of line之间使用postion选项定位元素,对于pos,可以指定数字或pos_low和pos_high。
如果需要将一组选择屏幕元素组合在一个区域中,可以使用begin of block和end of block附加项定义选择块组合屏幕元素:
selection-screen begin of block block.
[with frame [Title title]]
[NO INTERVALS].
...............
selection-screen end of block block.
在起止语句之间的屏幕元素组合成元素块,必须为每个定义名称block。屏幕元素块可以相互嵌套,with frame 选项,将在块的周围画边框,最多可以嵌套5层带边框的不同屏幕块,title选项给每个边框增加标题。title可以是文本元素或字符文字对象,该字符字段长度是边框的宽度,该宽度按照边框的嵌套深度由系统自动进行设定,NO INTERVALS选项将块的所有select-options语句都通过该选项把选择表限制为单值选择。如果块有边框,其宽度被画得更小,并且内部嵌套的块将自动继承NO intervals选项。
实例代码:
REPORT ZSELECT_SCREEN.
*SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN ULINE 10(40). " 空前10个字符长度为40个字符的横线
SELECTION-SCREEN BEGIN OF LINE . " 把多个选择屏幕元素放在同一行输出用line关键字
SELECTION-SCREEN COMMENT 2(4) TEXT-001. "把多个选择屏幕元素放在同一行输出的时候会省略掉文字或文本对象必须使用comment关键字 空前2个字符 文本长4个字符
PARAMETERS: P1(3).
PARAMETERS: P2(5).
PARAMETERS: P3(1).
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP . "空一行
SELECTION-SCREEN BEGIN OF BLOCK CHK1 WITH FRAME TITLE TEXT-002. "带有选择边框的选择屏幕块
PARAMETERS: A AS CHECKBOX,B AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK CHK1.
输出界面: