看下图代码:

report  z_xul_test2 中 定义了 全局变量 G_DATA1 , 分别调用了 z_xul_tes1 中的 form  和 function zbapi_test , 这两个调用都没有将

G_DATA1 作为参数,但在两个子程序中通过 field-symbol 成功修改了其值。

打印结果如下:

如果直接把 G_DATA1 作为一个普通变量来改,在语法检查时就通不过的,但如果利用 field-symbol 在运行期来修改就可以成功修改。

同样在 function 中也可以修改。 这个function 没有任何参数。

很有意思,如果碰到增强出口都是不带修改功能的,没法实现通过出口来改程序中的值,这时候,利用这个特点,说不定将不可能变成可能。。。

http://blog.csdn.net/fangkailove/article/details/39695519

测试代码,大家可以自己试试。

  1. 源代码:
  2. *&---------------------------------------------------------------------*
  3. *& Report  Z_XUL_TEST2
  4. *&
  5. *&---------------------------------------------------------------------*
  6. *&
  7. *&
  8. *&---------------------------------------------------------------------*
  9. REPORT  Z_XUL_TEST2.
  10. DATA:G_DATA1(100).  "定义全局变量
  11. G_DATA1 = '111111111111'. "初始值
  12. WRITE: / , '\ REPORT  Z_XUL_TEST2 初始值:' ,G_DATA1.
  13. PERFORM TEST1_FORM1 IN PROGRAM ('Z_XUL_TEST1')  . "调用其它程序的 FORM
  14. WRITE: / , '\ 经过Z_XUL_TEST1.TEST1_FORM1修改后:' ,G_DATA1.
  15. CALL FUNCTION 'ZBAPI_TEST' . "调用 function module
  16. WRITE: / , '\ 经过 ZBAPI_TEST修改后:' ,G_DATA1.
  17. *&---------------------------------------------------------------------*
  18. *& Report  Z_XUL_TEST1
  19. *&
  20. *&---------------------------------------------------------------------*
  21. *& 没有任何参数,却改变了主程序里的变量。
  22. *&
  23. *&---------------------------------------------------------------------*
  24. REPORT  Z_XUL_TEST1.
  25. form  test1_form1  .
  26. "(Z_XUL_TEST2)G_DATA1 = '尝试1'.
  27. "G_DATA1 = '尝试1'.
  28. FIELD-SYMBOLS:<f1> TYPE any.
  29. data fieldname(50).
  30. fieldname = '(Z_XUL_TEST2)G_DATA1' .
  31. ASSIGN (fieldname) to <f1>  .
  32. <f1> = '2222222222222222'.
  33. ENDFORM.
  34. FUNCTION ZBAPI_TEST .
  35. FIELD-SYMBOLS:<f1> TYPE any.
  36. data fieldname(50).
  37. fieldname = '(Z_XUL_TEST2)G_DATA1' .
  38. ASSIGN (fieldname) to <f1>  .
  39. <f1> = '333333333'.
  40. ENDFUNCTION.

ABAP FIELD-SYMBOLS 有大作用- 将没有可改参数的增强出口变得也能改主程序的值了的更多相关文章

  1. ABAP FIELD-SYMBOLS 有大作用- 将没有可改參数的增强出口变得也能改主程序的值了

    看下图代码: report  z_xul_test2 中 定义了 全局变量 G_DATA1 , 分别调用了 z_xul_tes1 中的 form  和 function zbapi_test , 这两 ...

  2. Top 15 不起眼却有大作用的 .NET功能集

    目录 1. ObsoleteAttribute2. 设置默认值属性: DefaultValueAttribute3. DebuggerBrowsableAttribute4. ??运算符5. Curr ...

  3. 不起眼却有大作用的 .NET功能集(转发)

    http://www.cnblogs.com/powertoolsteam/p/top15features.html 目录 1. ObsoleteAttribute2. 设置默认值属性: Defaul ...

  4. ABAP Field+offset字符串截取

    *删除字符串末尾的字符 DATA:str TYPE string VALUE 'abc,defg,', sub_str TYPE string, num TYPE i. WRITE:/ str. nu ...

  5. ibatis集成Sqlite:小数据库也有大作用

    作者:Vinkn 来自http://www.cnblogs.com/Vinkn/ 一.简介 Ibatis简介: Ibatis是一个类似于Hibernate的数据库ORM(对象关系映射,通俗点就是将数据 ...

  6. SAP ABAP exporting list to memory ...SUBMIT 程序传输屏幕参数

    SUBMIT report EXPORTING LIST TO MEMORY              AND RETURN. submit 关键字的作用就是在程序内部调用一个程序,and retur ...

  7. Local Response Normalization作用——对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力

    AlexNet将LeNet的思想发扬光大,把CNN的基本原理应用到了很深很宽的网络中.AlexNet主要使用到的新技术点如下. (1)成功使用ReLU作为CNN的激活函数,并验证其效果在较深的网络超过 ...

  8. C++引用的作用和用法

    引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样. 引用的声明方法:类型标识符&引用名=目标变量名: 例如: int q; int &ra=a; 说明: &am ...

  9. C++引用详解

    引用的概念 引用:就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样. 引用的声明方法:类型标识符 &引用名=目标变量名: 如下:定义引用ra,它是变量a的引用,即别名. i ...

随机推荐

  1. C# winform 登录 单例模式(转)

    主界面配置代码: frmLogin Codz program.cs 代码 static class Program { public static EventWaitHandle ProgramSta ...

  2. CodeForces 54C-First Digit Law(数位,概率dp)

    题意: 给你n个区间,在每个区间里各取一个数(随机取),求这n个数中超过K%的数是首位为1数的概率 分析: dp[i][j]取前i个数,有j个是首位为1的数的概率 易知,dp[i][j]=dp[i-1 ...

  3. HDU-1438 钥匙计数之一

    http://acm.hdu.edu.cn/showproblem.php?pid=1438                                钥匙计数之一 Time Limit: 200 ...

  4. Fitnesse-20140630与RestFixture-3.1编译与运行步骤

    为了能使RestFixture-3.1在Fitnesse-20140630中正确打印测试结果,准备修改RestFixture. 1.下载并编译Fitnesse-20140630 以下步骤以在64位Wi ...

  5. redis集群的搭建

    1.首先下载好软件包 #cd /opt/tzr/ #wget http://redis.googlecode.com/files/redis-2.6.11.tar.gz #mkdir /opt/tzr ...

  6. C/C++:类模板

    类模板就是为类声明一种模板,使得类中的某些数据成员,或某些成员函数的参数,又或者是某些成员函数的返回值可以取任意的数据类型,包括基本数据类型和自定义数据类型. 类模板的声明形式如下: template ...

  7. Install_pygments

    安装Pygments语法高亮 On OS X Leopard, Snow Leopard 1 $ sudo easy_install Pygments Alternatively on OS X wi ...

  8. [Hive - LanguageManual] VirtualColumns

    Virtual Columns Simple Examples Virtual Columns Hive 0.8.0 provides support for two virtual columns: ...

  9. 快速开发 jQuery 插件的 10 大技巧(转)

    转自:http://www.oschina.net/news/41776/jquery-10-tips 在开发过很多 jQuery 插件以后,我慢慢的摸索出了一套开发jQuery插件比较标准的结构和模 ...

  10. 【bzoj3233】【ahoi2013】找硬币

    题意: 求确定n种货币面额x1..xn满足 x1=1 且xi为xj的整数倍(i>j) 给定n个物品价格ai 求使用上面货币最少需要硬币数(不能找零) 题解: 动态规划 听说网上的题解都是搜索的做 ...