为了更改屏幕的属性,我们经常使用loop at screen. ... ... endloop.这里大家大家可能会感到疑惑,为什么可以loop一个结构,其实在内部是这样的:这条语句使得底层按先后顺序读取屏幕上面的控件信息(你在屏幕定义的第一个控件一般是在第3次循环的时候读入到screen结构中,头两次读的是和屏幕相关的系统自动定义的某些控件,至于是什么,大概是容器啊,系统命令相关,不甚清楚),而这些控件的相关信息就放在screen结构中,那到底到底如何做到的,我也很纠结。
下面着重讲解screen结构中的那些属性(很容易的不会详解):
Component | Length | Type | Meaning | Attribute |
surname | 132 | C | Name of the screen field | 控件名称 |
group1 | 3 | C | Modification group 1 | (下文详解) |
group2 | 3 | C | Modification group 2 | (下文详解) |
group3 | 3 | C | Modification group 3 | (下文详解) |
group4 | 3 | C | Modification group 4 | (下文详解) |
required | 1 | C | Field input is mandatory | 必须输入值 |
input | 1 | C | Field is ready for input | 可输入 |
output | 1 | C | Field is for display only | 可输出 |
intensified | 1 | C | Field is highlighted | 强调显示 |
invisible | 1 | C | Field is suppressed | 隐藏文本 |
length | 1 | X | Field length | 变量长度 |
active | 1 | C | Field is active | 控件激活 |
display_3d | 1 | C | Three-dimensional box | 3D方式显示 |
value_help | 1 | C | Input help button display | 指定search help |
request | 1 | C | Input exists | - |
以下详解group1,group2, group3,group4的含义:
GROUP1 用户通过modify id定义的分组
GROUP2 如果屏幕元素来自于LDB那么该值是‘DBS’
GROUP3 根据不同类型的控件,该值会不同,具体如下
BLK 代表控件类型SELECTION-SCREEN … BLOCK …: Block
COF 代表控件类型SELECTION-SCREEN COMMENT … FOR FIELD
COM 代表控件类型SELECTION-SCREEN COMMENT: Comment
HGH 代表控件类型SELECTION-OPTIONS: Interval upper limit
ISX 代表控件类型PARAMETERS … AS SEARCH PATTERN:
LOW 代表控件类型SELECTION-OPTIONS: Interval lower limit
OPU 代表控件类型SELECTION-OPTIONS: Selection option icons
PAR 代表控件类型PARAMETERS: Parameters
PBU 代表控件类型 SELECTION-SCREEN PUSHBUTTON …: Pushbutton
TAB 代表控件类型SELECTION-SCREEN TAB: Tab title
TOT 代表控件类型SELECTION-OPTIONS: Text of interval upper limit
TST 代表控件类型SELECTION-SCREEN … TABBED …: Tabstrip
TXT 代表控件类型Selection text
ULI 代表控件类型SELECTION-SCREEN ULINE: Horizontal Line
VPU 代表控件类型 SELECT-OPTIONS: Pushbutton for multiple selection
GROUP4 预留给SAP系统内部使用,功能不详.