●Sample-001根据用户或者TCODE,控制画面,是可编辑项
下面这段代码,是根据系统用户,进行画面控制。
如果用户名等于‘ZDEV0129’group 001的项目就是可以输入项目,group 002的项目事不可输入的。
否则,则相反。
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(24) TEXT-R09 FOR FIELD PA_TEST1 MODIF ID 001.
*SELECTION-SCREEN POSITION POS_LOW.
PARAMETERS: PA_TEST1(4) TYPE C MODIF ID 001.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(24) TEXT-R10 FOR FIELD PA_TEST2 MODIF ID 002.
*SELECTION-SCREEN POSITION POS_LOW.
PARAMETERS: PA_TEST2(4) TYPE C MODIF ID 002.
SELECTION-SCREEN END OF LINE.
AT SELECTION-SCREEN OUTPUT.
IF SY-UNAME = 'ZDEV0129'.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = '001'.
SCREEN-INPUT = '1'.这个参数是控制,是否可以输入
SCREEN-OUTPUT = '1'.这个参数是控制,TEXT是否可以出力
* SCREEN-INVISIBLE = '1'.这个参数控制,这个group是否可以显示
MODIFY SCREEN..
ELSE.
SCREEN-INPUT = '0'.
SCREEN-OUTPUT = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = '001'.
SCREEN-INPUT = '0'.
SCREEN-OUTPUT = '1'.
MODIFY SCREEN..
ELSE.
SCREEN-INPUT = '1'.
SCREEN-OUTPUT = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
●Sample-002根据画面上的选择按钮,控制画面,是可编辑
如果将将画面选择项目‘code’选中的话,其后面的项目就是可以输入项目,其他的项目是不可输入的否则,则相反。
下面这
SELECTION-SCREEN: BEGIN OF LINE.
PARAMETERS: PA_R1 RADIOBUTTON GROUP RAD1 USER-COMMAND UCOM.
SELECTION-SCREEN: COMMENT 04(16) TEXT-R09 FOR FIELD PA_R1.
PARAMETERS: PA_CODE(4) TYPE C.
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN: BEGIN OF LINE.
PARAMETERS: PA_R2 RADIOBUTTON GROUP RAD1.
SELECTION-SCREEN: COMMENT 04(16) TEXT-R10 FOR FIELD PA_R2.
PARAMETERS: PA_NAME(4) TYPE C.
SELECTION-SCREEN: END OF LINE.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF PA_R1 = 'X'.
IF SCREEN-NAME = 'PA_CODE'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'PA_NAME'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDIF.
IF PA_R2 = 'X'.
IF SCREEN-NAME = 'PA_CODE'.
SCREEN-INPUT = 0.
SCREEN-REQUIRED = 1.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'PA_NAME'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
ENDIF.
ENDLOOP.
● 小结:
上面两个例子,就是关于怎么控制程序入力画面的典型例子。
可能,实际使用中,会有很多其他的情况,但是都可以参照上面这两个例子。
下面是关于screen参数的分析,只分析了几个常用的,其他的参数,用到的时候再研究。
NAME就是画面项目得名字,当你要控制画面项目是一个的情况下,就可以直接使用项目的名字GROUP1这四个参数,是组。如果你要控制的画面项目很多的话,就要用到组了,
GROUP2将你要控制的项目分组定义,然后再用逻辑控制。例子1中用到了。
GROUP3screen参数最多能定义4个组。
GROUP4
REQUIRED控制画面项目是否是必输项目,可以等于‘1’或者‘0’
INPUT控制画面项目是否是可输入的,可以等于‘1’或者‘0’
OUTPUT控制画面项目得text文是否显示,可以等于‘1’或者‘0’
INTENSIFIED高亮你要控制的项目,可以等于‘1’或者‘0’
INVISIBLE控制往画面项目里输入的值是否可见,可以等于‘1’或者‘0’
LENGTH可以制定,你要控制项目的长度,最大值是该项目的所定义的长度,‘0’是正常显示,ACTIVE控制该画面项目是否显示,可以等于‘1’或者‘0’
DISPLAY_3D显示3D,可以等于‘1’或者‘0’
VALUE_HELP控制该画面项目是否有help,可以等于‘1’或者‘0’。但是有help,里面的值,具体怎REQUEST没试出来,有什么作用。
VALUES_IN_COMBO控制该画面项目是否带有下拉list值,具体实现,再研究。
COLOR控制该画面项目,是否带颜色,具体实现,再研究。
是可编辑项目,可显示项目。2的项目事不可输入的。
,是可编辑项目,必输项目。,其他的项目是不可输入的。
就可以直接使用项目的名字来判断,在例子2中用到了
长度,‘0’是正常显示,
有help,里面的值,具体怎么设,再研究。