ABAP--关于abap的subroutines的几个注意点
来源:互联网 发布:录音软件下载中文版 编辑:程序博客网 时间:2024/06/06 02:52
1、参数引用传递(Parameters Passed by Reference)
使用USING或CHANGING不带value关键字来声明参数引用传递。代码样例:
FORM subr USING p1 [{TYPE type}|{LIKE field}]
p2 [{TYPE type}|{LIKE field}]
...
CHANGING p1 [{TYPE type}|{LIKE field}]
p2 [{TYPE type}|{LIKE field}]
...
在引用传递的方式,参数不在堆中占有内存,传入的是变量的地址,在子程序中对变量的修改实际上是对实际参数的修改。在这种方式using和changing是等价的。
2、输入参数传值传递(Input Parameters That Pass Values)
使用USING带value关键字来声明输入参数传值传递。代码样例:
FORM subr USING value(p1) [{TYPE type}|{LIKE field}]
value(p2) [{TYPE type}|{LIKE field}]
...
在输入参数传值传递的方式,参数在堆中占有内存,传入的是变量的值,在子程序中对变量的修改不会对实际参数的造成修改。
3、输出参数传值传递(Output Parameters That Pass Values)
使用USING带value关键字来声明输入参数传值传递。代码样例:
FORM subr CHANGING value(p1) [{TYPE type}|{LIKE field}]
value(p2) [{TYPE type}|{LIKE field}]
...
在输出参数传值传递的方式,形式参数在堆中占有内存,传入的是变量的值,在子程序中对变量的修改只有正常结束 (Endform,CHECK,EXIT等语句结束)时才会有形式参数拷贝到对实际参数,如果是错误消息退出则不会影响实际参数。
4、local的使用
Local语句可以保护在子过程对全局变量的修改不会影响到子过程之外。特别是在子过程里不能直接使用Tables定义工作区,既是你将TABLES语句写在子过程里,该工作区也是全局性的。如果你需要定义子程序内的工作区,你可以先用tables定义一个全局的,再在子程序里使用local定义本地的,代码样例如下:
REPORT demo_mod_tech_local.
TABLES sflight.
PERFORM tabtest1.
WRITE: / sflight-planetype, sflight-price currency sflight-currency.
PERFORM tabtest2.
WRITE: / sflight-planetype, sflight-price currency sflight-currency.
FORM tabtest1.
sflight-planetype = 'A310'.
sflight-price = '150.00'.
WRITE: / sflight-planetype, sflight-price currency sflight-currency.
ENDFORM.
FORM tabtest2.
LOCAL sflight.
sflight-planetype = 'B747'.
sflight-price = '500.00'.
WRITE: / sflight-planetype, sflight-price currency sflight-currency.
ENDFORM.
- ABAP--关于abap的subroutines的几个注意点
- ABAP--关于abap的subroutines的几个注意点
- abap的子程序参数注意点
- abap的子程序参数注意点
- ABAP类调用的一些注意点
- ABAP的子程序参数注意点
- 关于select * 在ABAP中要注意的问题
- abap--关于异常的处理
- abap--关于异常的处理
- [转]关于ABAP的介绍
- abap--关于异常的处理
- abap--关于异常的处理
- abap--关于异常的处理
- abap--关于异常的处理
- abap--关于异常的处理
- abap--关于异常的处理
- ABAP程序的移植性注意问题
- ABAP编程需要注意的小问题
- ASP.NET下MVC设计模式的实现
- 捕获提示窗体消失的事件
- sgi-stl,allocator/boost:pool
- Asp.Net Forums 代码中的web设计模式
- 一个牛人给JAVA初学者的建议
- ABAP--关于abap的subroutines的几个注意点
- 什么是HTTPS
- IIS配置HTTPS服务的方法
- 个人的收藏夹与大家分享
- 建立新的DWG
- http://en.wikipedia.org/wiki/Main_Page
- jsp连接数据库 大全
- 等候适当的时光再遇
- 打工仔的青春狂想曲