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

    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>.

  • 相关阅读:
    Longest Palindromic Substring
    PayPal MLSE job description
    Continuous Median
    Remove Duplicates From Linked List
    Valid IP Address
    Longest substring without duplication
    Largest range
    Subarray sort
    Multi String Search
    Suffix Trie Construction
  • 原文地址:https://www.cnblogs.com/cnlmjer/p/4099840.html
Copyright © 2011-2022 走看看