sap ABAP关于Data Reference的使用FIELDSYMBOLS

摘要:
有两种方法可以分配地址变量:CREATE DATAGETRENCEOFdobjINTOdref 2。动态创建数据引用的内存空间CREATE DATAdref{TYPE TYPE}|{LIKEdobj}此语句创建的对象没有名称,只有地址变量指向内存变量;在声明引用变量时,如果未指定类型,则必须添加{TYPEtype}|{LIKEdobj}。

Data References(只能指向abap定义的基本数据或者基本数据组合体)

1、定义数据参考变量(Data References

DATA dref TYPE REF TO DATA.(指向任意类型,但在创建时必须指定对象类型)

DATA dref TYPE REF TO DATA_TYPE.

或者

TYPES t_dref TYPE REF TO DATA.

DATA dref TYPE t_dref.

在完成地址变量定义时,变量没有指向任何对象,此时你不可引用。只有在变量赋值后在引用。地址变量的赋值有两种方法:

CREATE DATA

GET REFERENCE OF dobj INTO dref.

2、动态创建数据参考的内存空间(CREATE DATA)

CREATE DATA dref {TYPE type}|{LIKE dobj}这种语句创建的对象没有名称,只有地址变量指向该内存变量;在申明参考变量时,未指定类型则必须加{TYPE type}|{LIKE dobj}说明。

有时需要动态创建动态类型数据对象,语法如下

CREATE DATA dref TYPE (name).

3、将数据地址赋值给数据参考变量(GET REFERENCE)

GET REFERENCE OF dobj INTO dref.

4、访问数据参考变量指定的数据

访问数据参考变量指定的数据有两种情况:

1) 对于使用DATA dref TYPE REF TO DATA_TYPE来声明的数据参考变量,程序可以直接通过->*运算符直接访问数据;

代码样例

types: begin of STRUC_1,
         A type I,
         B type ref to SFLIGHT,
         C type P,
       end of STRUC_1.
data: S1 type STRUC_1.
types: begin of STRUC_2,
         X(10) type C,
         Y     type ref to STRUC_1,
         Z     type I,
       end of STRUC_2.
data:  S2 type STRUC_2,
       R2 type ref to STRUC_2.
if S1-A > 10.
  create data S1-B.
  S1-B->CARRID = 'LH'.
  S1-B->PAYMENTSUM = 1000.
endif.

S2-Y->A   = 100.
S2-Y->*-A = 200. "Same as S2-Y->A 
S2-Y->B->FLDATE = SY-DATUM.

2) 对于使用DATA dref TYPE REF TO DATA来声明的数据参考变量,程序如果要访问数据参考变量指定的数据,你首先要将数据参考变量赋值给一个字段符号(Field sysbol)(是不能直接通过数据参考变量来访问的).如果数据参考变量为初始化状态, sy-subrc就返回4。

ASSIGN dref->* TO <fs> [CASTING ...].

代码样例

DATA: numref     TYPE REF TO DATA,
      number     TYPE I VALUE 123.
FIELD-SYMBOLS: <fs> TYPE ANY.
GET REFERENCE OF number INTO numref.
ASSIGN numref->* TO <fs>.

免责声明:文章转载自《sap ABAP关于Data Reference的使用FIELDSYMBOLS》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇爬取起点小说网(二)设计代码[go]函数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

pytorch和tensorflow的爱恨情仇之张量

pytorch和tensorflow的爱恨情仇之基本数据类型:https://www.cnblogs.com/xiximayou/p/13759451.html pytorch版本:1.6.0 tensorflow版本:1.15.0 基本概念:标量、一维向量、二维矩阵、多维张量。 1、pytorch中的张量 (1)通过torch.Tensor()来建立常量...

layui 学习笔记(四) 复杂表头前台Excel导出

layui - excel 复杂表头导出- 第三方插件实现 参考:https://fly.layui.com/extend/excel/演示:http://excel.wj2015.com/    http://excel.wj2015.com/_book/docs/%E5%87%BD%E6%95%B0%E5%88%97%E8%A1%A8/%E5%AF%B...

(转)source insight的使用方法逆天整理

转载自:https://www.cnblogs.com/xunbu7/p/7067427.html A. why SI:   为什么要用Source Insight呢?因为她比完整的IDE要更快啊,比一般的编辑器便捷啊!她有逆天的查看定义,查看调用,查看引用功能以及方便的Context Window上下文显示,像这样的东西非常有利于查看大量代码!   那么...

Angularjs总结(三)摸态框的使用

静态页面: <input class="btn btnStyle "value="提&emsp;取"type="button"ng-click="TQZJDFG() " /> controllers中的方法: 1 $scope.TQZJDFG = function() { 2 //可以将此参数传递到所弹出的摸态框的控制器中 3...

2.3、Python迭代器、列表解析及生成器(0530)

1、动态语言 sys.getrefcount()      //查看对象的引用计数 增加对象的引用计数场景 对象创建时:以赋值的方式,创建变量名的同时就会创建变量 将对象添加进容器时:类似list.append() 当对象被当作参数传递给函数时 多重目标赋值时:s1 = s2 = s3 = 'abc' 为对象创建另外的变量名 减少引用计数 引用此对象...

前端JS下载文件总结

Data URLs         Data URLs: 即前缀为data: 协议的URL,其允许内容创建者向文档中嵌入小文件。   例如:可以直接在HTML中的img元素直接使用Data URLs ; data:[<mediatype>][;base64],<data> mediatype: 是个 MIME 类型的字符串,例如...