zoukankan      html  css  js  c++  java
  • ABAP关于Data Reference的使用

      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>.
  • 相关阅读:
    洛谷P2066 机器分配【dp】
    [HNOI2004]打鼹鼠【dp】
    [ZJOI2008][BZOJ1037] 生日聚会Party|动态规划]
    Java中Map<Key, Value>存储结构根据值排序(sort by values)
    LATEX如何写多个条件推导式推出一个结论
    书列荐书 |《黑天鹅&#183;如何应对不可预知的未来》【美】纳西姆 尼古拉斯 塔勒布 著
    Java | Stream流、泛型、多线程 | 整理自用
    书列荐书 |《代码整洁之道》之 类 的设计
    书列荐书 |《认知红利》 谢春霖著
    eclipse集成processing、PApplet、proclipsing 问题
  • 原文地址:https://www.cnblogs.com/xiaomaohai/p/6157312.html
Copyright © 2011-2022 走看看