ABAP/4中参数的传递
来源:互联网 发布:js touchend 触发多次 编辑:程序博客网 时间:2024/06/14 07:57
1. Call By Reference:
传参数时将资料的存放地址(address)传至参数中,也就是子程序中的参数变量与外部实际
变量共享地址内的值, 又称为 Call By Address,若在子程序中地址中的值改变了, 外部实
际变量的值也会跟着改变.
语法:
FORM <subr> [USING <f1> <f2>…] [CHANGING <f1>…]
PERFORM <subr> [USING <f1> <f2>…] [CHANGING <f1>…]
Using 之后接在子程序中不会改变的变量, CHANGING接会改变值的变量
但实际上USING之后的参数在子程序中也可将值改变
Example:
SUM = 0.
NUM1 = 100. NUM2=200.
PERFORM ADD USING NUM1 NUM2 CHANGING SUM.
WRITE: / NUM1,NUM2,SUM “ SUM 由 0 变成 300
FORM ADD USING NUM1 NUM2 CHANGING SUM.
SUM = NUM1 + NUM2.
ENDFORM.
执行结果:
100 200 300
2. Call By Value
传参数时将数据的值复制一份至另一地址中, 所以在子程序中参数变量值改变, 并不会影
响外部实际变量的值.
语法:
FORM <subr> USING VALUE(<f1>…)
使用 VALUE(<f1>)表示 <f1>是 Call By Value的传递
PERFORM <subr> USING <f1>
Example:
SUM = 0.
NUM1 = 5.
PERFORM MULTI USING NUM1 CHANGING SUM.
WRITE: / NUM1,SUM “NUM1值还是5,SUM 由 0 变成 120
FORM MULTI USING VALUE(NUM1) CHANGING SUM.
SUM = 1.
WHILE NUM1 > 1
SUM = SUM * NUM1.
NUM1 = NUM1 – 1.
ENDWHILE..
ENDFORM.
执行结果:
5 120
3. Call By Value and Return Result
传入参数值的方式同Call By Value,但在子程序结束执行时会将传入的参数值复制
一份传回给外部实际变量.
语法:
FORM ….. CHANGING VALUE(<f1>)
PERFORM …. CHANGING …. <f1>
Example:
SUM = 0.
NUM1 = 100. NUM2=200.
PERFORM ADD USING NUM1 NUM2 CHANGING SUM.
WRITE: / NUM1,NUM2,SUM “ SUM 由 0 变成 300
FORM ADD USING NUM1 NUM2 CHANGING VALUE(S).
S = NUM1 + NUM2.
WRITE: / NUM1,NUM2,SUM “得到结果为 100200 0
ENDFORM.
执行结果:
100 200 0 “在子程序中 SUM值尚未改变
100 200 300 “返回程序时,将变量 S的值复制给 SUM
“所以 SUM值变成 300
http://space.itpub.net/13946941/viewspace-468356
- ABAP/4中参数的传递
- 在ABAP/4中参数的传递可分成
- ABAP中的参数传递
- GridView中参数的传递
- 方法中参数的传递
- java中参数的传递
- java中参数的传递
- java中参数的传递
- Java中参数的传递
- ABAP学习笔记二(参数传递)
- url中参数中传递"?"的问题
- 多线程中MFC对象参数的传递
- java中函数参数的传递
- AS中setInterval()的参数传递注意~
- JSF中传递参数的问题
- MATLAB 中GUI子程序的参数传递
- Java中参数传递的问题
- ajax中传递参数出现的乱码
- XmlDocument中的空格换行节点去除问题。
- Uboot_移植_记录_/*嵌入式学习*/
- 深入分析MFC 文档视图结构一
- <setjmp.h>非局部跳转(来自C语言程序设计--现代方法第二版)
- VC++ 6.0下对配置设置文件的存取访问
- ABAP/4中参数的传递
- C、C++易错知识点杂记(4)
- Linux头文件中s3c2410 GPIO的宏
- activex npapi
- win7下使用VMware安装RedHat Linux 9.0 详细图解
- AssertValid()与Dump()函数
- inline内联函数(声明前加inline还是定义前加inline)
- 设计模式总结
- Android在layout xml中使用include