ABAP--关于Data Reference的使用
来源:互联网 发布:北京java培训机构排名 编辑:程序博客网 时间:2024/05/19 00:52
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.
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.
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 [CASTING ...].
代码样例
DATA: numref TYPE REF TO DATA,
number TYPE I VALUE 123.
FIELD-SYMBOLS: TYPE ANY.
GET REFERENCE OF number INTO numref.
ASSIGN numref->* TO.
number TYPE I VALUE 123.
FIELD-SYMBOLS:
GET REFERENCE OF number INTO numref.
ASSIGN numref->* TO
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1653157
- ABAP--关于Data Reference的使用
- ABAP--关于Data Reference的使用
- ABAP--关于Data Reference的使用
- Abap routing in infopackage data selection 的使用限制
- Spring Data Neo4j reference文档中关于@RelatedTo注解的注意事项
- 关于资源的Reference路径引用下,文件的使用
- What's different with Field symbol and Data reference in SAP-ABAP
- ABAP DATA 和 JSON之间的转换
- 关于PinnedHeaderExpandableListView使用的时候on a null object reference
- 关于使用protobuf出现undefined reference 的问题
- 关于Data 控件的使用有关问题!
- 关于VB中Data控件的使用
- Java中对不变的 data和object reference 使用 final
- abap消息的使用
- ABAP游标的使用
- abap-使用vim做abap的编辑器
- abap--关于异常的处理
- abap--关于异常的处理
- BASIS--LSMW Steps For Data Migration
- Enhancement--User exit documentation from SAP
- Enhancement--How to Find a Screen Exit for T-code
- Enhancement--Finding a project and enhancement
- ABAP--Field Symbol 的Example(来自SAP的样例)
- ABAP--关于Data Reference的使用
- ABAP--如何在join查询中使用动态表名(其实这样是没有必要的)
- 简单的iBatisNet示例
- ABAP--ABAP变量的可见范围
- BW--BW访问接口列表(摘自sap library)
- BW--Create Data Warehousing: Step by Step(摘自SAP Library)
- BASIS-如何删除SAP在用户修改表结构时创建的临时表
- ABAP--一个不错的函数模块的文档生成程序
- ABAP--如何建立通过sap表维护工具来维护自定义表TCODE