看下图代码:

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 有大作用- 将没有可改參数的增强出口变得也能改主程序的值了的更多相关文章

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

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

  2. 【ABAP系列】SAP 销售订单的行项目里条件的增强

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP 销售订单的行项目里条件的 ...

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

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

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

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

  5. ABAP Field+offset字符串截取

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

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

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

  7. mybatis完美的实战教程

    文件夹(? )[-] (读者注:事实上这个应该叫做非常基础的入门一下下,假设你看过Hibernate了那这个就非常的简单) 文章来源:http://blog.csdn.net/techbirds_ba ...

  8. JVM系列文章(三):Class文件内容解析

    作为一个程序猿,只知道怎么用是远远不够的.起码,你须要知道为什么能够这么用.即我们所谓底层的东西. 那究竟什么是底层呢?我认为这不能一概而论.以我如今的知识水平而言:对于Web开发人员,TCP/IP. ...

  9. RTF 格式 说明

    摘要: 本文对RTF文件格式进行分析研究,对RTF文件结构及特性进行了阐述,并分别列举了几个有用性的样例进行具体分析, 终于通过VB程序代码实现了一个RTF书写器(不具有所见即所得特性).本文对软件开 ...

随机推荐

  1. JSP页面标签

    1.EL表达式中empty的用法 EL表达式中empty的用法 <c:if test="${! empty key}">${key}</c:if> < ...

  2. redis windows安装与使用

    是什么 Redis(Remote Dictionary Server)远程字典服务器 开源免费 C语言编写的 key/value分布式内存数据库,基于内存运行 Redis支持数据的持久化,可以将内存中 ...

  3. Huatuo's Medicine

    Huatuo's Medicine Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others ...

  4. USACO 1.4 Arithmetic Progressions

    Arithmetic Progressions An arithmetic progression is a sequence of the form a, a+b, a+2b, ..., a+nb ...

  5. php的异步并行扩展swoole

    Swoole是PHP的异步并行扩展,有点像Node.js,但swoole既支持同步又支持异步,比node更强大.Swoole扩展是基于epoll高性能事件轮询,并且是多线程的,性能非常好. Swool ...

  6. HIT Software Construction Lab 2

    2019年春季学期 计算机学院<软件构造>课程 Lab 2实验报告 姓名 刘帅 学号 班号 1703008 电子邮件 1609192321@qq.com 手机号码 目录   1 实验目标概 ...

  7. Docker运行程序报错 WARNING: IPv4 forwarding is disabled. Networking will not work

    WARNING: IPv4 forwarding is disabled. Networking will not work.   第一步:vi /usr/lib/sysctl.d/00-system ...

  8. TimSort学习资料

    深入理解 timsort 算法(1):自适应归并排序 如何找出Timsort算法和玉兔月球车中的Bug? Java TimSort算法 源码 笔记 Timsort https://en.wikiped ...

  9. Oprofile分析(android oprofile性能分析)

    一.内核支持: make menuconfig 1.评测菜单中启用 Oprofile ,在 .config 文件中设置?CONFIG_PROFILING=y?和?CONFIG_OPROFILE=y 2 ...

  10. Android GreenDao 使用教程

    上一篇 总结了grendao 环境搭建以及简单的增删查改,接下来将全面解析框架的使用,基于上篇的orm模型(Note)数据库讲解 GreenDao的插入: 插入的方式有很多: daoSession.g ...