以下问题的答案为2。为什么刷新只删除第一行?是不是期望它删除内部表的所有行?
下面的代码将输出什么?
DATA: BEGIN OF itab OCCURS 0, fval type i, END OF itab.
itab-fval = 1. APPEND itab.
itab-fval = 2. APPEND itab.
REFRESH itab.
WRITE: /1 itab-fval.
: 1
B: 2
C:空白
D: 0
答:B
如果代码不包含任何语法错误,例如在赋值2和写入值时缺少'-',那么B是正确答案,但不是因为您所述的原因。这并不是说REFRESH
只从表中删除了第一行,而是因为REFRESH
没有清除表的标题行。因此,在REFRESH
之后,标题行仍然具有最近分配的值2。当在调试器中运行程序时,这可以很容易地确定。
注意,正如SAP帮助中提到的,使用带有标题行的内部表已经过时了。
您可以使用clear命令清除标题行。
REFRESH itab.
CLEAR itab.