最近做一个AS01的屏幕增强,想根据TCODE来判断一个屏幕字段的可用与否。使用了SCREEN结构,在此记录一下这个结构的字段含义。
在SAP屏幕中,一个字段就像.NET中的一个控件,这个字段对应一个SCREEN结构,就像控件的多个属性。
SE11可以查看SCREEN结构中的字段,只是没有备注。
名称 长度 说明
NAME 30 屏幕字段的名称
GROUP1 3 属于字段组1的字段
GROUP2 3 属于字段组2的字段
GROUP3 3 属于字段组3的字段
GROUP4 3 属于字段组4的字段
ACTIVE 1 可见并准备输入的字段
REQUIRED 1 字段输入是强制的,即该值为X是表示该字段必须输入
INPUT 1 字段准备输入
OUTPUT 1 字段仅用于显示
INTENSIFIED 1 高亮显示字段
INVISIBLE 1 禁用字段
LENGTH 1 减少字段输出长度
DISPLAY_3D 1 以三维框架显示字段
VALUE_HELP 1 显示有值帮助的字段
上述长度为1的字段,=1表示有效,=0则相反。
简单的例子,我在屏幕上加了一个字段’ANLU-EQUCODE,现在我想在AS01,AS02中可输入,在AS03中不可输入,可在PBO中使用下列代码:
IF SY-TCODE = ‘AS03’.
LOOP AT SCREEN.
IF SCREEN-NAME = ‘ANLU-EQUCODE’.
SCREEN-INPUT = 0.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDIF.