ABAP FIELD-SYMBOLS 有大作用- 将没有可改參数的增强出口变得也能改主程序的值了
看下图代码:
report z_xul_test2 中 定义了 全局变量 G_DATA1 , 分别调用了 z_xul_tes1 中的 form 和 function zbapi_test , 这两个调用都没有将
G_DATA1 作为參数,但在两个子程序中通过 field-symbol 成功改动了其值。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmFuZ2thaWxvdmU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">
打印结果例如以下:
假设直接把 G_DATA1 作为一个普通变量来改,在语法检查时就通只是的,但假设利用 field-symbol 在执行期来改动就能够成功改动。
相同在 function 中也能够改动。 这个function 没有不论什么參数。
非常有意思,假设碰到增强出口都是不带改动功能的,没法实现通过出口来改程序中的值,这时候,利用这个特点,说不定将不可能变成可能。
。。
http://blog.csdn.net/fangkailove/article/details/39695519
測试代码,大家能够自己试试。
源码:
*&---------------------------------------------------------------------*
*& Report Z_XUL_TEST2
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------* REPORT Z_XUL_TEST2. DATA:G_DATA1(100). "定义全局变量 G_DATA1 = '111111111111'. "初始值
WRITE: / , '\ REPORT Z_XUL_TEST2 初始值:' ,G_DATA1. PERFORM TEST1_FORM1 IN PROGRAM ('Z_XUL_TEST1') . "调用其他程序的 FORM
WRITE: / , '\ 经过Z_XUL_TEST1.TEST1_FORM1改动后:' ,G_DATA1. CALL FUNCTION 'ZBAPI_TEST' . "调用 function module
WRITE: / , '\ 经过 ZBAPI_TEST改动后:' ,G_DATA1. *&---------------------------------------------------------------------*
*& Report Z_XUL_TEST1
*&
*&---------------------------------------------------------------------*
*& 没有不论什么參数,却改变了主程序里的变量。 *&
*&---------------------------------------------------------------------* REPORT Z_XUL_TEST1. form test1_form1 . "(Z_XUL_TEST2)G_DATA1 = '尝试1'.
"G_DATA1 = '尝试1'. FIELD-SYMBOLS:<f1> TYPE any.
data fieldname(50).
fieldname = '(Z_XUL_TEST2)G_DATA1' .
ASSIGN (fieldname) to <f1> . <f1> = '2222222222222222'. ENDFORM. FUNCTION ZBAPI_TEST . FIELD-SYMBOLS:<f1> TYPE any.
data fieldname(50).
fieldname = '(Z_XUL_TEST2)G_DATA1' .
ASSIGN (fieldname) to <f1> . <f1> = '333333333'. ENDFUNCTION.
ABAP FIELD-SYMBOLS 有大作用- 将没有可改參数的增强出口变得也能改主程序的值了的更多相关文章
- ABAP FIELD-SYMBOLS 有大作用- 将没有可改参数的增强出口变得也能改主程序的值了
看下图代码: report z_xul_test2 中 定义了 全局变量 G_DATA1 , 分别调用了 z_xul_tes1 中的 form 和 function zbapi_test , 这两 ...
- 【ABAP系列】SAP 销售订单的行项目里条件的增强
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP 销售订单的行项目里条件的 ...
- Top 15 不起眼却有大作用的 .NET功能集
目录 1. ObsoleteAttribute2. 设置默认值属性: DefaultValueAttribute3. DebuggerBrowsableAttribute4. ??运算符5. Curr ...
- 不起眼却有大作用的 .NET功能集(转发)
http://www.cnblogs.com/powertoolsteam/p/top15features.html 目录 1. ObsoleteAttribute2. 设置默认值属性: Defaul ...
- ABAP Field+offset字符串截取
*删除字符串末尾的字符 DATA:str TYPE string VALUE 'abc,defg,', sub_str TYPE string, num TYPE i. WRITE:/ str. nu ...
- ibatis集成Sqlite:小数据库也有大作用
作者:Vinkn 来自http://www.cnblogs.com/Vinkn/ 一.简介 Ibatis简介: Ibatis是一个类似于Hibernate的数据库ORM(对象关系映射,通俗点就是将数据 ...
- mybatis完美的实战教程
文件夹(? )[-] (读者注:事实上这个应该叫做非常基础的入门一下下,假设你看过Hibernate了那这个就非常的简单) 文章来源:http://blog.csdn.net/techbirds_ba ...
- JVM系列文章(三):Class文件内容解析
作为一个程序猿,只知道怎么用是远远不够的.起码,你须要知道为什么能够这么用.即我们所谓底层的东西. 那究竟什么是底层呢?我认为这不能一概而论.以我如今的知识水平而言:对于Web开发人员,TCP/IP. ...
- RTF 格式 说明
摘要: 本文对RTF文件格式进行分析研究,对RTF文件结构及特性进行了阐述,并分别列举了几个有用性的样例进行具体分析, 终于通过VB程序代码实现了一个RTF书写器(不具有所见即所得特性).本文对软件开 ...
随机推荐
- python3连接Mairadb数据库
<span style="font-size:18px;">#本代码演示的是python3.3.5下连接Mairadb数据库</span> <span ...
- [Spring实战系列](17)编写切点与声明切面
切点用于准确定位应该在什么地方应用切面的通知. 切点和通知是切面的最基本元素. 在Spring AOP中,须要使用AspectJ的切点表达式语言来定义切点. 关于Spring AOP的AspectJ切 ...
- 怎样在同一台电脑使用不同的账号提交到同一个github仓库
近期这段时间使用github.有时在公司办公,想要用git提交代码到自己的github仓库,提交是显示的作者是自己在公司的账户.而不是自己的github账户.这就相当于提交到github的代码不是自己 ...
- 2015.04.23,外语,读书笔记-《Word Power Made Easy》 12 “如何奉承朋友” SESSION 33
1.eat, drink, and be merry 拉丁动词vivo(to live),加上名词vita(life),是许多重要英文词汇的来源. convivo是拉丁动词to live togeth ...
- [JavaEE] Maven简介
转载自:百度 http://baike.baidu.com/view/336103.htm?fr=aladdin 一.简介 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构 ...
- myeclipse打开jsp页面慢或者卡死
不知道你们有没有这种经历,反正无论是公司电脑还是自己电脑,myeclipse打开jsp页面卡的不行不行的,又是甚至会出现卡死的现象,几经周折,找到了解决办法,亲测有效 打开window-prefere ...
- ORACLE RAC 11G 添加以及删除UNDO表空间
在生产环境上,由于闪存盘的容量有限,现在需要将闪存盘里面的UNDO表空间,替换到非闪存的磁盘里面. 磁盘的使用情况如下: 表空间使用情况如下: RAC两个节点占用将近167G的空间. 操作步骤如下: ...
- 9. Palindrome Number[E]回文数
题目 Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same b ...
- 清北集训Day3T1(转换)
这题可能是我与正解里的最近的一次了,可以还是sb的把正解叉了. 正解其实比较显然:因为$f(x)$只有81个取值,所以我们可以枚举$f(x)$,然后计算$x$,再判断$x$是否可以转化为$f(x)$ ...
- vue中采用axios发送请求及拦截器
这几天在使用vue中axios发送get请求的时候很顺手,但是在发送post请求的时候老是在成功的回调函数里边返回参数不存在,当时就纳闷了,经过查阅资料,终于得到了解决方案,在此做一总结: 首先我们在 ...