动态数据对象

一.字段符号:

1.声明字段符号 FIELD-SYMBOLS <fs>[TYPE type|LINK dobj].

<fs>的定义类型为D。

2.分配数据对象

声明后可以进行字段分配(有静态和动态之分)

静态:程序运行前要确定分配给字段符号的数据对象名称。

ASSIGN f TO <fs>.

指定要分配数据对象的偏移量和长度:ASSIGN f TO <fs>.

3.强制类型转换

可将任何数据对象分配给<fs>,并将继承其所有属性,通过ASSIGN中的CASTING附件项指定

ASSIGN f TO <fs>CASTING. 都将按字段符号定义

ASSIGN f TO <fs>CASTING{TYPE type|LIKE dobj}[DECIMALS dec].

二.数据引用

程序所使用的数据对象,均储存在运行时分配的内存中,每个对象均有期起始内存地址,该地址有编辑器分配,一般不能被程序员随意释放。

数据对象的内存地址也常常被称作:引用(reference),引用还用于动态创建ABAP数据对象,其存储于引用变量中,以数据引用(Data reference)和对象引用(Object reference)。

1.声明引用变量: TYPES t_deref TYPE REF TO DATA. //类型定义

                              DATA dref TYPE REF TO DATA. //变量声明

引用变量中包含地址引用,是指向其他数据对象的指针,实际代表其内存地址,在ABAP程序中不可见。

2.动态对象引用:

用DATA创建属静态常见的数据对象,而可用CREATE DATA dref TYPE type|LIKE obj. 来动态地创建数据对象;其中dref指向对象,只可通过引用变量寻址,并必须指定数据类型,还可以通过变量动态的指定所创建数据对象类型 CREATE DATA dref TYPE (name).

3.获取对象引用:

用Get语句可是一个引用变量获得已存在的数据对象的地址引用

GET REFERENCE OF obj INTO dref.

其中dref为DATA定义的静态变量。

4.解除数据引用:

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

对于动态创建的对象,解除引用是获取其内容的唯一方式。

 

Copyright @ 200810R_EVO,http://hi.baidu.com/r_evo

本文遵从《SAP程序设计》版权协议,任何组织或个人在引用、转载或修改此文档时,敬请保留版权信息及注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值