ABAP 動態程式設計-FIELD-SYMBOLS

xiaoman發表於2009-09-16
Field-Symbols:
指向一個記憶體區,可以透過地址訪問指定記憶體區的資料就像指標一樣
例項:
DATA:
  var(10) TYPE c.

FIELD-SYMBOLS TYPE ANY.  "定義指向任何型別,不能指向表型別

var = 'Hello'.
ASSIGN var TO .
WRITE: / .

輸出:
  Hello

更改欄位資料:
= 'World'.
WRITE:/ var.

輸出:
  World
是一個指向變數var的指標,操作就身操作var本身一樣。


field-symbols一般操作:
DATA:
  BEGIN OF struc,
     comp1 TYPE c LENGTH 1 VALUE '1',
     comp2 TYPE c LENGTH 20 VALUE 'abcdefg',
  END OF struc,
  comp_value TYPE c LENGTH 10 VALUE 'value',
  comp_name  TYPE c LENGTH 15.

FIELD-SYMBOLS  TYPE ANY.

"指派結構的一個欄位給
ASSIGN struc-comp1 TO .  WRITE:/ " 輸出:1
"指派結構欄位的基地址加上兩倍此欄位長度的地址給欄位符號
ASSIGN struc-comp1 INCREMENT 2 TO WRITE:/ . " 輸出: b
"指派結構的第二個元件欄位給欄位符號
ASSIGN COMPONENT 2 OF STRUCTURE struc TO .  WRITE:/ " 輸出:abcdefg

"動態指定欄位名
comp_name = 'comp_value'.
ASSIGN (comp_name) TO WRITE:/ "輸出:value

透過欄位符號與動態欄位名稱的定義(comp_name),可以在ABAP執行時動態的獲取設定變數的資料, 增強程式的靈活性。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29917/viewspace-614811/,如需轉載,請註明出處,否則將追究法律責任。

相關文章