当前位置:文档之家› ABAP程序输入画面控制

ABAP程序输入画面控制

ABAP程序输入画面控制
ABAP程序输入画面控制

●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,里面的值,具体怎么设,再研究。

相关主题
文本预览
相关文档 最新文档