学习

chouer

  博客中心 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 登录 ::
  2 随笔 :: 948 文章 :: 8 评论 :: 0 Trackbacks
Cached @ 2025/6/14 10:49:54Control ASP.skins_cogitation_controls_blogstats_ascx
<2025年6月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

News

留言簿(0)

随笔档案

文章分类

文章档案

搜索

最新评论

  • 1. SAP资料下载
  • SAP下载网,
    SAP资料共享网站,完全免费
    资料全由网友共享,大家共享,大家下载
  • --SAP99

阅读排行榜

评论排行榜

Cached @ 2025/6/14 10:49:54Control ASP.skins_cogitation_controls_singlecolumn_ascx

 ABAP/4中参数的传递可分成

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  得到结果为 100  200  0

               ENDFORM.

     执行结果:

                100    200     0    在子程序中 SUM值尚未改变

                     100   200   300    返回程序时, 将变量 S的值复制给 SUM

                                        所以 SUM值变成 300

 

分享按钮发布于: 2006-09-22 13:38 chouer 阅读(349) 评论(0)  编辑 收藏

评论

标题
姓名
主页
内容 
  登录  使用高级评论  Top 订阅回复  取消订阅
[使用Ctrl+Enter键可以直接提交]