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。
这是怎么实现呢?我们来看下面的例子。
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。
相关文章推荐
- 关于C语言中无符号与有符号数之间运算问题
- python 的日志logging模块学习
- 如何 ︰ 执行批量更新和插入使用.NET 提供程序在 C#.NET OpenXML
- jsp传list到spring mvc
- 导入maven项目遇到中文乱码
- getchar()和getch()的区别
- Java多线程代码示例
- Java 基本数据类型转换
- 详解C语言中结构体的自引用和相互引用
- Google Guava 库用法整理
- 《跟着小吴哥学python》之 05 python中的集合 dict&set
- 简单排序算法
- Python学习笔记04
- 应用eclipse自带工具进行代码调用函数分析
- [C++]排序模板(含C++模板代码)
- STS (Spring Tool Suite) 导入getting started guide提示SunCertPathBuilderException错误的解决
- Java迭代器的一般用法
- PHP-CGI远程任意代码执行漏洞(CVE-2012-1823)修复方案
- java file类
- ASP.NET中Image控件使用详解