ABAP自由内部表



以下问题的答案为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.

相关内容

  • 没有找到相关文章

最新更新