动态数据对象

来源:互联网 发布:dir函数python 编辑:程序博客网 时间:2024/06/07 12:49

一.字段符号:

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程序设计》版权协议,任何组织或个人在引用、转载或修改此文档时,敬请保留版权信息及注明出处。