1.13. 动态语句
1.13.1. 内表动态访问
READ TABLE itab WITH KEY(k1)=v1…(kn)=vn
READ TABLE itab…INTOwaCOMPARING(comp1)…(compn) TRANSPORTING(comp1)…
MODIFY [TABLE] itab TRANSPORTING(comp1)…(compn)
DELETE TABLEitabWITH TABLE KEY(comp1)…(compn)
DELETE ADJACENT DUPLICATES FROM itab COMPARING(comp1)…(compn)
1.13.2. 动态类型
DATA: a TYPE REF TO i.
CREATE DATA a TYPE (‘I’).
a->* = 1.
CREATE OBJECT … TYPE (type)…请参考类对象反射章节
1.13.3. 动态SQL
1.13.4. 动态调用类的方法
1.13.5. ASSIGN 动态分配
DATA:str(20) TYPE c VALUE ‘Output String’,
name(20) TYPE c VALUE ‘STR’.
“静态分配:编译时就知道要分配的对象名
ASSIGN name TO <fs>.“结果是<fs>与name变量等同
“通过变量名动态访问变量
ASSIGN (name) TO <fs>.“结果是是<fs>的值为str变量值
“还可以直接使用以下的语法访问其他程序中的变量
ASSIGN (‘(ZJDEMO)SBOOK-FLDATE‘) TO <fs>.
“通过索引动态的访问结构成员
ASSIGN COMPONENT sy-index OF STRUCTURE <f1> TO <f3>.
“通过字段名动态的访问结构成员
ASSIGN COMPONENT <f2>OF STRUCTURE <f1> TO <f3>.
“如果定义的内表没有组件名时,可以使用索引为0的组件来访问这个无名字段(注:不是1)
ASSIGN COMPONENT 0 OF STRUCTURE itab TO <fs>.
1.13.5.1. 动态访问类的属性成员
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/20173.html