我是ABAP的新手,请耐心等待。没有标题的表格
我收到错误“IT_COMBINE”是一个没有标题行的表,因此没有名为“EBELN”的组件。
我试过使用“进入相应的领域”,并没有工作。
我提供我的代码在这里:http://pastebin.com/y64T2nah
我是ABAP的新手,请耐心等待。没有标题的表格
我收到错误“IT_COMBINE”是一个没有标题行的表,因此没有名为“EBELN”的组件。
我试过使用“进入相应的领域”,并没有工作。
我提供我的代码在这里:http://pastebin.com/y64T2nah
不能使用在内部表中的字段直接,如果你没有与标题行申报你的内部表。
有两种可能性来更改您的代码。
你叫无在线35场ebeln因为你没跟无在线19头行声明it_combine,您不能使用it_combine-ebeln这样。相反,你必须声明工作区
Data wa_combine type ty_combine.
和线使用的工作区域没有35
Loop at it_combine into wa_combine .
select ebeln lifnr ekorg bsart ekgrp
into table it_po
from ekko
where ebeln = wa_combine-ebeln.
End Loop.
2您有标题行申报你的内部表
Data it_combine type standard table of ty_combine with header line.
希望它是有用的。有关标题行和工作区的信息,请参阅Sap帮助文档。
感谢
Dhivya
您也可以使用加法“对于所有条目”的声明“选择”:“有标题行”或额外的工作区
SELECT DISTINCT ebeln netwr werks INTO TABLE it_combine
FROM ekpo
WHERE netwr IN s_netwr. "in is only for select options
CHECK it_combine[] IS NOT INITIAL. " not empty, obligatory
SELECT ebeln lifnr ekorg bsart ekgrp
INTO TABLE it_po
FROM ekko FOR ALL ENTRIES IN it_combine
WHERE ebeln = it_combine-ebeln.
- 不需要
另外,在OOP上下文中使用“with header line”是不可能的。
值得一提的是,对于x中的所有入口而言,这是一个不太酷的加法,只有当x是一个相当小的itab(关于行数)时才应该使用它。当然,你提到它是很好的。 – 2012-08-18 06:30:08
我会将第一个选择更改为: 'SELECT ebeln netwr werks INTO TABLE it_combine FROM ekpo WHERE netwr IN s_netwr。 SORT it_combine。 从it_combine中删除相邻的重复项比较所有的域。' 要将重复项移除到ABAP,而不是数据库引擎。 – bariz 2012-09-03 17:31:32
SAP建议不要使用标题行。答案的循环部分可以工作,但不是建议标题行,对于所有条目选择会更有意义。 – 2012-08-09 10:38:15
谢谢大家! – Richard 2012-08-09 14:12:04