由于我很少循环进入字段符号,因此我经常忘记使用它ASSIGNING
来代替INTO
会立即导致异常终止。是否有效使用INTO
with<fieldsymbol>
或者这是语法检查器真正应该捕获的东西?
问问题
8258 次
3 回答
5
LOOP...INTO
是完全有效的,但它会以不同的方式工作。 LOOP...INTO
将值传输到提供的结构,但ASSIGNING
将字段符号分配给实际的表行。
唯一的区别是您是否要更改表格内容。请参阅以下内容:
* Changes all entries in the CARRID column of lt_flights to 50.
LOOP AT lt_flights ASSIGNING <flight>.
<flight>-carrid = 50.
ENDLOOP.
* Does not change the entries in lt_flights (MODIFY...FROM would be required).
ASSIGN <flight> TO ls_flight.
LOOP AT lt_flights INTO <flight>.
<flight>-carrid = 50.
ENDLOOP.
LOOP...INTO
除非您有某种动态编程要求,否则使用字段符号将毫无用处。
于 2013-06-26T18:03:24.267 回答
4
<fieldsymbol>
当先前分配给具有您循环的表的行类型的结构时,它是有效的。
于 2013-06-28T11:50:46.797 回答
2
这是一个完全有效的陈述:
APPEND INITIAL LINE TO lt_foo ASSIGNING <ls_foo>.
READ TABLE lt_bar INTO <ls_foo> INDEX 1.
字段符号几乎在任何时候都代替了变量,因此语法检查无法将其标记为无效。它可能会发出警告,但...
于 2013-06-26T17:09:12.480 回答