ABAP动态字段问题

ABAP动态字段问题

Filed- symbols实际上指向一个内存区,可以通过地址访问指定内存区的数据, 就像指针一样
实例:
DATA:
var(10) TYPE c.

FIELD-SYMBOLS <fs> TYPE ANY.  “定义<fs>指向任何类型,不能指向表类型

var = ‘Hello’.
ASSIGN var TO <fs>.
WRITE: / <fs>.

输出:
Hello

更改字段数据:
<fs> = ‘World’.
WRITE:/ var.

输出:
World
<fs>是一个指向变量var的指针,操 作<fs>就身操作var本身一样。

field-symbols一般操作: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 <fs> TYPE ANY.
 
“指派结构的一个字段给<fs>
ASSIGN struc-comp1 TO <fs>.  WRITE:/ <fs>. ” 输出:1
“指派结构字段的基地址加上两倍此字段长度的地址给字段符号
ASSIGN struc-comp1 INCREMENT 2 TO <fs>. WRITE:/ <fs>. ” 输出: b
“指派结构的第二个组件字段给字段符号
ASSIGN COMPONENT 2 OF STRUCTURE struc TO <fs>.  WRITE:/ <fs>. ” 输出:abcdefg
 
“动态指定字段名
comp_name = ‘comp_value’.
ASSIGN (comp_name) TO <fs>. WRITE:/ <fs>. “输 出:value
 
通过字段符号 与动态字段名称的定义(comp_name),可以在ABAP运行时动态的获取设定变量的数据, 增强程序的灵活性。
 
 
posted @ 2013-02-06 15:15  VerySky  阅读(995)  评论(0)    收藏  举报