https://blog.csdn.net/sunnyonly1992/article/details/51545678
(一)定义
FIELD-SYMBOLS: []
在ABAP编程中使用非常广泛,类似于指针,可以指代任何变量。
当不输入时,继承赋给它的变量的所有属性
当输入时,赋给它的变量必须与同类型。
举个简单的例子:
FIELD-SYMBOLS:.
DATA:DAT(8) VALUE '19920108'.
ASSIGN DAT TO .
WRITE: / .
" 继承 DAT属性 ,为C类型,其值为19920108
注意,这里定义了之后,使用 assign … to …,将变量分配给内部字段,这时才继承了dat的属性及值
如果写成如下:
FIELD-SYMBOLS: TYPE D.
DATA: DAT(5) TYPE C VALUE '12345'.
ASSIGN DAT TO .
WRITE: /.
这时候就会报错: dat与的类型不兼容。因为F2定义为D类型, 所以assign 的只能是同类型变量。
FIELD-SYMBOLS: TYPE D.
DATA:DAT(8) VALUE '19920108'.
ASSIGN DAT TO TYPE 'D'.
WRITE:/.
这次虽然 为D类型,而dat为C类型, 但是type D 是将dat类型转换成D类型再分配给 ,输出为19920108.
然后我们来讲解如何使用 field-symbol:
首先我们摘取相关代码如下
1.先定义.
FIELD-SYMBOLS:.
SORT I_EXCEL BY ROW COL.
DATA: NUM_COL TYPE I.
然后我们执行下面的代码:
LOOP AT I_EXCEL INTO W_EXCEL.
NUM_COL = W_EXCEL-COL.
ASSIGN COMPONENT NUM_COL OF STRUCTURE W_TABLE TO .
= W_EXCEL-VALUE.
AT END OF ROW.
APPEND W_TABLE TO I_TABLE.
CLEAR: W_TABLE.
ENDAT.
CLEAR: W_EXCEL.
ENDLOOP.