字段“ str_mara”是未知的,但是存在一个名称相似的字段“ it_mara”

时间:2018-12-18 17:21:34

标签: sap abap

我想显示Mara表的内容。

types : begin of str_mara,
matnr type mara-matnr,
ernam type mara-ernam,
end of str_mara.

data it_mara type table of str_mara .
select matnr ernam from mara into TABLE it_mara .

loop at it_mara into str_mara.
write:/ str_mara-matnr , str_mara-ernam.
endloop.

3 个答案:

答案 0 :(得分:4)

好吧,没有名为str_mara的变量。只有一个名为str_mara的类型。

只需使用字段符号循环,因为无论如何都应这样做。

LOOP AT it_mara ASSIGNING FIELD-SYMBOL(<str_mara>).
   WRITE: /, <str_mara>-matnr, <str_mara>-ernam.
ENDLOOP.

答案 1 :(得分:2)

类型只是静态定义,没有分配内存,因此不能单独使用。

您可以使用该类型创建变量,也可以使用内联声明创建类似的变量。

  • 选项1:data ls_mara type str_mara.

  • 选项2:loop at lt_mara into data(ls_mara).

或者接受Umar的回答:)

顺便说一句,请务必检查访问mara表的条件。

答案 2 :(得分:-1)

您还可以使用内联声明以更少的ABAP代码行显示玛拉表的内容。

SELECT matnr, ernam FROM mara INTO TABLE @DATA(lt_mara) .
LOOP AT lt_mara ASSIGNING FIELD-SYMBOL(<fs_mara>).
   WRITE: /, <fs_mara>-matnr, <fs_mara>-ernam.
ENDLOOP.