在ABAP/4中参数的传递可分成
1. Call By Reference:
传参数时将资料的存放地址(address)传至参数中, 也就是子程序中的参数变量与外部实际变量共享地址内的值, 又称为 Call By Address, 若在子程序中地址中的值改变了, 外部实际变量的值也会跟着改变.
语法:
PERFORM <subr> [USING <f1> <f2>…] [CHANGING <f1>…]
FORM <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
传参数时将数据的值复制一份至另一地址中, 所以在子程序中参数变量值改变, 并不会影响外部实际变量的值.
语法:
PERFORM <subr> USING <f1>
FORM <subr> USING VALUE(<f1>…)
使用 VALUE(<f1>)表示 <f1>是 Call By Value的传递
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, 但在子程序结束执行时会将传入的参数值复制一份传回给外部实际变量.
语法:
PERFORM …. CHANGING …. <f1>
FORM ….. CHANGING VALUE(<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 “得到结果为 100 200 0
ENDFORM.
执行结果: 100 200 0 “在子程序中 SUM值尚未改变
100 200 300 “返回程序时, 将变量 S的值复制给 SUM
“所以 SUM值变成 300
分享到:
相关推荐
abap内表使用方法,包括填充内表(详细讲解相关的方法)、读取并处理 数据库表(ABAP/4的开放式 SQL),很实用哦!
主要是关于ABAP动态内表使用详细方法以及示例的详解
ABAP read 和 line-exists 的使用方法
关于using和changing 程序之间的调用 报表中所用到的事件以及作用 SAP-ABAP SELECT-SCREEN 的几个用法 SAP中调用外部程序(RFC) ABAP 读EXCEL 到内表 ABAP总结之BDC完整版 ABAP的面向对象-class的定义 SAP ABAP...
ABAP SNRO 号码范围 使用教程
ABAP与EXCEL接口统一方法,大家借鉴一下。
abap与excel接口统一方法
Rules and hints on using ABAP. ABAP - Security Notes Overview of all potential security risks in ABAP programs. ABAP - Glossary Terms in the ABAP environment, and their explanations. ABAP -...
ABAP正则表达式的使用
SAP Web Dynpro for ABAP 图片上传及使用
ABAP加密和解密
ABAP资料ABAP资料ABAP资料ABAP资料ABAP资料
这是一个ABAP子程序SUBMIT调用的方法,要根据实际灵活使用。
ABAP 调用ABAP PROXY
abap tips abap tips abap tips abap tips abap tips
ABAP for all entries使用中注意的问题
abap逻辑数据库ABAP数据库操作,abap过程中的小积累。用处多多哦
ABAP中增强的介绍和使用,三种方式的介绍,一代二代三代
全面介绍ALV面向对象的写法,在此基础上可以轻松的进入ABAP面向对象方法的研究上来
详细讲述SAP ABAP的BADI增强的概述及使用。详细讲述SAP ABAP的BADI增强的概述及使用。详细讲述SAP ABAP的BADI增强的概述及使用。详细讲述SAP ABAP的BADI增强的概述及使用。详细讲述SAP ABAP的BADI增强的概述及使用。...