ABAP using 和changing 的使用方法
在ABAP/4中
参数
转速和进给参数表a氧化沟运行参数高温蒸汽处理医疗废物pid参数自整定算法口腔医院集中消毒供应
的传递可分成:
1.Call By Reference:
传参数时将资料的存放地址(address)传至参数中,即子程序中的参数变量与外部实际变量共享地址内的值。
也称为Call By Address,若在子程序中地址中的值改变了,外部实际变量的值也会跟着改变。
语法:PERFORM
[USING .....] [CHANGING......]
FORM [USING .....] [CHANGING....]
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 V alue
传参数时将数据的值复制一份至另一地址中,所以在子程序中参数变量值改变,并不会影响外部实际变量的值。
语法:PERFORM USING
FORM USING V ALUE (.......)或
FORM USING ......LIKE
使用V ALUE()
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示是Call By V alue的传递。
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 V alue and Return Result
传入参数值的方式同Call By V alue,但在子程序结束执行时会将传入的参数值复制一份传回给外部实际参数。
语法:FPERORM --- CHANGING----
FORM-----CHANGING V ALUE ()
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