我是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