REFRESH
refresh itab,与clear itab[]相似,只清空内表行,但保存内存区
CLEAR
clear itab,清空内表行以及工作区,但保存内存区。
clear itab[],清空内表行,但不清空工作区,但保存内存区。
FREE
free itab,与refresh相似,清空内表行,但不清空工作区,且释放内存区域。
表1 带工作区的内表itab各种操作结果
操作 | 工作区(work area)-itab | 内表行-itab[] | 内存区 |
REFRESH itab | 保留 | 清除 | 保留 |
CLEAR itab | 清除 |
|
|
CLEAR itab[] | 保留 |
|
|
FREE | 保留 |
| 清除 |
Demo:
DATA:
BEGIN OF itab OCCURS 0,
fval TYPE i,
END OF itab. "inter table with head line
itab-fval = 1.
APPEND itab.
itab-fval = 2.
APPEND itab.
REFRESH itab. "clear the detail of itab, but save header line
IF itab[] IS INITIAL.
WRITE: / 'Itab is empty'.
FREE itab.
ENDIF.
WRITE: / itab-fval. "output the head line ('2')
CLEAR itab."Clear the header line
WRITE: / itab-fval. "output the initial value('0')