Abap “现场”;str_mara“;未知,但有一个具有类似名称的字段;它是“马拉”;
我想显示Mara表的内容Abap “现场”;str_mara“;未知,但有一个具有类似名称的字段;它是“马拉”;,abap,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_mar
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.
嗯,没有名为
str_mara
的变量。只有一个类型名为str_mara
只需使用字段符号循环即可,因为无论如何都应该这样做
LOOP AT it_mara ASSIGNING FIELD-SYMBOL(<str_mara>).
WRITE: /, <str_mara>-matnr, <str_mara>-ernam.
ENDLOOP.
在其上循环\u mara赋值字段-SYMBOL()。
写:/,-matnr,-ernam。
结束循环。
您还可以使用内联声明以较少的ABAP代码行显示mara表的内容
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.
从mara中选择matnr、ernam到表@DATA(lt_mara)。
在lt_mara处循环分配字段-SYMBOL()。
写:/,-matnr,-ernam。
结束循环。
类型只是一个静态定义,没有分配内存,因此不能单独使用
您可以创建该类型的变量,也可以使用内联声明创建类似的变量
- 选项1:
data ls\u mara type str\u mara.
- 选项2:
在lt_mara循环到数据(ls_mara)。
顺便说一句,一定要检查访问mara表时的where条件。这就是变量和类型之间的所有区别……您是否绝对确定要在不使用任何标准的情况下将
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.