我是新來的ABAP。我昨天問了一個類似但不同的問題。
我將表 ( = table)復制到本地表 ( = localTable) 并洗掉其中的所有重復項,這很好用(前 3 行代碼)
現在我想遍歷這個本地表并將所有匹配的資料發送到一個結構中INTO CORRESPONDING FIELDS OF- 不幸的是我總是收到以下錯誤:
Internal tables cannot be used as work areas.
資訊:我正在一個方法中作業!
這是我正在使用的代碼:
DATA localTable TYPE STANDARD TABLE OF table.
SELECT columnName FROM table INTO TABLE localTable.
DELETE ADJACENT DUPLICATES FROM localTable COMPARING columnName.
LOOP AT localTable ASSIGNING FIELD-SYMBOL(<fs_table>).
SELECT * FROM anotherTable as p
WHERE p~CN1 = @localVariable
AND p~CN2 = @<fs_table>-columnName
INTO CORRESPONDING FIELDS OF @exportStructure "<-- Here I always get my error
ENDSELECT.
ENDLOOP.
uj5u.com熱心網友回復:
首先:我讀過我必須internal table在使用命令之前對我的進行排序,DELETE ADJACENT DUPLICATES FROM localTable COMPARING columnName.所以我在兩者之間添加了以下代碼行:
SORT localTable BY columnName ASCENDING.
第二:而不是使用INTO CORRESPONDING FIELDS OF TABLE我用APPENDING CORRESPONDING FIELDS OF TABLE,因為INTO,覆寫與自身的每一行所以我總共只有一個在我出口結構線。
每次我的陳述為真時,APPENDING 都會添加一個新行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/362963.html
下一篇:如何打破高層回圈?[復制]
