在ABAP中,对内表的操作是要将内表的数据取出到工作区来进行的,表头也是一个工作区,只是工作区的名称与内表的名称一样而已,带表头的内表在LOOP的时候也可以用INTO将它里面的数据循环到与内表名称不一样的工作区中来处理。如:
DATA: BEGIN OF wa_tab,
col1 TYPE char20,
col2 TYPE char20,
col3 TYPE char20,
END OF wa_tab,
itab TYPE TABLE OF wa_tab WITH HEADER LINE.
LOOP AT itab into wa_tab.
ENDLOOP.
在写代码的时候,一般不推荐用带表头的内表,因为ABAP里面很对语句中内表出现的位置也是工作区可以出现的位置,如IF itab IS INITIAL就是判断工作区itab是否为空,而IF itab[] IS INITIAL才是判断内表是否为空
在不带表头的内表中,如果要修改内表的内容,则可以用字段符号来方便操作,而不需要额外的MODIFY一下,如:
FIELD-SYMBOLS: TYPE wa_tab.
LOOP AT itab ASSIGN .
-col1 = ‘AA’.
ENDLOOP.
这样内表的每一行数据中的col1字段的内容就变成了AA
loop at itab 和loop at itab into wa_tab 的区别是什么?是不是如果itab用了with head line就不用into到wa_tab, 没用的话就要into
最新推荐文章于 2024-05-15 08:32:19 发布