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.
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 struc-comp1 INCREMENT 2 TO <fs>. WRITE:/ <fs>. ” 输出: b
“指派结构的第二个组件字段给字段符号
ASSIGN COMPONENT 2 OF STRUCTURE struc TO <fs>. WRITE:/ <fs>. ” 输出:abcdefg
ASSIGN COMPONENT 2 OF STRUCTURE struc TO <fs>. WRITE:/ <fs>. ” 输出:abcdefg
“动态指定字段名
comp_name = ‘comp_value’.
ASSIGN (comp_name) TO <fs>. WRITE:/ <fs>. “输 出:value
ASSIGN (comp_name) TO <fs>. WRITE:/ <fs>. “输 出:value
通过字段符号 与动态字段名称的定义(comp_name),可以在ABAP运行时动态的获取设定变量的数据, 增强程序的灵活性。
 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号