答案 0 :(得分:1)
1。您定义了ANY
字段符号并使用ASSIGNING
FIELD-SYMBOLS:
<line> type any.
LOOP at <itab> ASSIGNING <line>.
ENDLOOP.
2。您定义了ANY
字段符号并使用INTO
FIELD-SYMBOLS:
<line> type any.
CREATE DATA dref like line of <itab>.
ASSIGN dref->* to <line>.
LOOP at <itab> INTO <line>.
ENDLOOP.
答案 1 :(得分:1)
为此只需使用良好的RTTS。您可以创建参考并直接阅读
FIELD-SYMBOLS: <itab> TYPE STANDARD TABLE.
DATA: ref_wa TYPE REF TO data,
ref_rowtype TYPE REF TO cl_abap_structdescr,
ref_tabletype TYPE REF TO cl_abap_tabledescr.
ref_rowtype ?= cl_abap_typedescr=>describe_by_name( tabname ).
CREATE DATA ref_wa TYPE HANDLE ref_rowtype.
READ TABLE <itab> REFERENCE INTO ref_wa INDEX 1.
或基于此引用创建字段符号并在READ TABLE中使用它
ASSIGN ref_wa->* TO FIELD-SYMBOL(<fsym_wa>).
READ TABLE <itab> ASSIGNING <fsym_wa> INDEX 1.
请注意,我已将<itab>
声明为 STANDARD 表,以消除您得到的索引错误操作。
更新:要从<itab>
对象创建结构,请使用以下语法:
ref_tabletype ?= cl_abap_typedescr=>describe_by_data( <itab> ).
ref_rowtype ?= ref_tabletype->get_table_line_type( ).
最后两行相同。
答案 2 :(得分:0)
您可以使用内联声明来定义WA,如下所示。 READ TABLE <itab> INTO (<wa>)
或先使用FIELD SYMBOL <wa> TYPE ANY
声明WA / Field符号,然后使用READ TABLE <tab> ASSIGNING <wa>
读取表