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.
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 struc-comp1 INCREMENT 2 TO . WRITE:/ . " 输出: b
"指派结构的第二个组件字段给字段符号
ASSIGN COMPONENT 2 OF STRUCTURE struc TO . WRITE:/ . " 输出:abcdefg
ASSIGN COMPONENT 2 OF STRUCTURE struc TO . WRITE:/ . " 输出:abcdefg
"动态指定字段名
comp_name = 'comp_value'.
ASSIGN (comp_name) TO . WRITE:/ . "输出:value
ASSIGN (comp_name) TO . WRITE:/ . "输出:value
通过字段符号与动态字段名称的定义(comp_name),可以在ABAP运行时动态的获取设定变量的数据, 增强程序的灵活性。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29917/viewspace-614811/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29917/viewspace-614811/