看下图代码:

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. Java多线程演示样例(模拟通话,sleep,join,yield,wait,notify,Semaphore)

    主线程等待子线程的多种方法 synchronized浅析 sleep 是静态方法,Thread.sleep(xx)谁调用谁睡眠. join 是合并方法.当前线程调用其它线程xx.join()则等到xx ...

  2. 【机房重构】—上机&amp;订餐

    前几天通过UML图中的时序图.让我对于机房重构中的每一条线理解的更加清晰.曾经认为上机特别的乱,在一次偶遇中,得知了原来它能够转化成我们平时订餐.以下就听我说一说上机&订餐的故事吧! 又是发生 ...

  3. 生成静态页java代码

    package com.fang.news.test; import java.io.BufferedReader; import java.io.BufferedWriter; import jav ...

  4. DNS隧道之DNS2TCP实现——dns2tcpc必须带server IP才可以,此外ssh可以穿过墙的,设置代理上网

    我自己的命令: server端: dns2tcpd -F -d 1 -f ./dns2tcpd.conf 输出: 09:08:59 : Debug options.c:97 Add resource ...

  5. hdoj--2803--The MAX(水题)

    The MAX Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Su ...

  6. [IOI 1999] 花店橱窗布置

    [题目链接] https://www.luogu.org/problemnew/show/P1854v [算法] f[i][j]表示放了前i束花,第i束花放在第j个花瓶中,所能获得的最大美学值 由于要 ...

  7. SQL Server的三种分页方式

    直接上代码 --top not in方式 select top 条数 * from tablename where Id not in (select top 条数*页数 Id from tablen ...

  8. BZOJ 2819 DFS序+线段树

    非递归的DFS写炸了- 交了一个递归版的 过了---.. //By SiriusRen #include <cstdio> #include <cstring> #includ ...

  9. Java Servlet 配置

    图片太大,可以右键另存再查看,也可以鼠标点击拖置一下,用浏览器单独承载放大查看.

  10. MySQL 5.6.26 误删ibdata恢复

    [root@hank-yoon ~]# ps -ef | grep mysqlroot 1129 1 0 15:30 pts/0 00:00:00 /bin/sh /export/servers/my ...