您的位置:首页 > 编程语言

SAP ABAP编程 ABAP选择屏幕:根据用户选择动态显示屏幕

2016-04-20 10:45 351 查看
在有些程序中我们发现,如果用户选择了多个选项中的其一(单选框),则屏幕的外观将会有所调整。

这是怎么实现呢?我们来看下面的例子。

PARAMETERS: p1 TYPE c RADIOBUTTON GROUP g1 USER-COMMAND uc,

p2 TYPE c RADIOBUTTON GROUP g1 DEFAULT 'X'.

PARAMETERS: p_werks TYPE werks MODIF ID ty1,

p_matnr TYPE matnr MODIF ID ty2.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

CASE screen-group1.

WHEN 'TY1'.

IF p1 IS INITIAL.

screen-active = '0'.

ELSE.

screen-active = '1'.

ENDIF.

WHEN 'TY2'.

IF p2 IS INITIAL.

screen-active = '0'.

ELSE.

screen-active = '1'.

ENDIF.

ENDCASE.

MODIFY SCREEN.

ENDLOOP.

AT SELECTION-SCREEN.

CLEAR sy-ucomm.

关于程序的说明:

(1)该程序可以根据用户选择了P1或P2,决定显示工厂还是物料号在屏幕上;

(2)这里 USER-COMMAND uc是关键,它代表用户点击 RADIOBUTTON GROUP g1上的任一选项时,都将触发PAI,并且Function code为 'UC'。

在CLEAR sy-ucomm.这里打个断点即可观察sy-ucomm的值。

(3)MODIF ID 用于对屏幕元素进行分组,这在屏幕元素较多时更有用处,逻辑清晰。

这里的PBO(AT SELECTION-SCREEN OUTPUT)就是根据用户的选择,决定不同组的屏幕元素是隐藏或显示。

(4)与Radio Button(单选框)相似,Check Box(复选框)和List Box(下拉框)也可以触发PAI。不过普通的屏幕编辑框则不支持,必须借助回车才可以触发PAI。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: