ABAP 免费内部 table
ABAP free internal table
下面问题的答案为2。为什么刷新只删除第一行?难道不希望它删除内部table的所有行吗?
下面的代码会输出什么?
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
只删除了 table 的第一行,这是因为 REFRESH
没有清除 table 的 header 行。因此,在 REFRESH
之后,header 行仍然具有最新分配的值,即 2。当 运行 程序在调试器中时,可以很容易地确定这一点。
请注意,内部 table 与 header 行的使用已过时,如 SAP help 中所述。
您可以使用清除命令清除 header 行。
REFRESH itab.
CLEAR itab.
下面问题的答案为2。为什么刷新只删除第一行?难道不希望它删除内部table的所有行吗?
下面的代码会输出什么?
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
只删除了 table 的第一行,这是因为 REFRESH
没有清除 table 的 header 行。因此,在 REFRESH
之后,header 行仍然具有最新分配的值,即 2。当 运行 程序在调试器中时,可以很容易地确定这一点。
请注意,内部 table 与 header 行的使用已过时,如 SAP help 中所述。
您可以使用清除命令清除 header 行。
REFRESH itab.
CLEAR itab.