Field symbol & Reference(这两种都属于动态数据对象)
FS:
Field synmol 相当于一个变量或者table的别名,对它的改动,其实就是对这个变量或者table的改动。
FS定义好了只有,需要把一个table或者变量 ASSIGN 给它(ASSIGN variable_name TO <fs_name>)。但是在ASSIGN 之前,对其结构都是未知的所以不能访问。这点需要注意下。
field-symbols: <fs>.
assign xxx to <fs>.
if <fs> is assigned. ”是否已经给FS赋值了
endif.
unassigned <fs>. “清空FS,不让它和任何变量有关联
Ref:
Reference 相当于C语言里面的一个指针,
引用分为: 数据引用(Data reference)和对象引用(Obejct reference)
数据引用的定义方式: DATA: name_of_ref TYPE REF TO DATA.
动态对象创建: CREATE DATA name_of_ref TYPE type/ LIKE obj.
TYPE (variable_name) 动态类型
(这里相当于创建了一个变量,但是我们不知道他的名字,只知道存放这个变量地址的变量的名字,即name_of_ref)
ASSIGN name_of_ref->* to <Field_symbol_name>.
->*解引用(dereference)符号
然后可以通过<FS> 访问创建好了的引用了
对象引用的定义方式: DATA: name_of_ref TYPE REF TO object_name.
动态对象创建: CREATE DATA name_of_ref.
然后就可以:通过-> 或者=> 访问类里面的component了。