ABAP—COLLECT的用法
ABAP—COLLECT的用法
| ? | ? |
ABAP中COLLECT的用法:
SAP中ABAP對內表插入數據的時候有3種:APPEND,COLLECT,INSERT。
要填充內表 ,既可逐行 添加數據, 也可復制另 一個表格的 內容。
要逐行填充 內表,可以 使用 APPEND、 COLLECT 或 INSERT 語句。
_ 要將內表 僅用于存儲 數據,出于 性能方面的 考慮,建議 使用 APPEND。 用 APPEND 也可以創建序列清單。
_ 要計算數 字字段之和 或要確保內 表中沒有出 現重復條目 ,請使用 COLLECT 語句,它根 據標準關鍵字處理行。
_ 要在內表 現有行之前 插入新行, 請使用 INSERT 語句。
要將內表內 容復制到另 一個內表中 ,請使用 APPEND、 INSERT 或 MOVE 語句的變式 。
_ 要將內表 行附加到另 一個內表中 ,請使用 APPEND 語句的變式 。
_ 要將內表 行插入另一 個內表中, 請使用 INSERT 語句的變式 。
_ 要將內表 條目內容復 制到另一個 內表中,并 且覆蓋該目 標表格,請 使用 MOVE 語句。
?
COLLECT的特性讓我看到了企業寫報表的曙光。有的時候我們需要對某個區域或者某個客戶年度營業額進行匯總,于是COLLECT就大派用場了,甚至可以不用跟QAD一樣判斷是否有存在這個記錄而進行匯總,SAP就已經幫你處理好這一切!
不過,默認COLLECT只是對非P和I進行匯總,所以有的時候這也帶來很多不方便。這個問題留下一篇博文解決吧!請看如下例子:
REPORT? Z_COLLECT.
DATA: BEGIN OF ITAB OCCURS 4,
? COLUMN1(3) TYPE C,
? COLUMN2(2) TYPE N,
?COLUMN3??? TYPEI,
? COLUMN4(5) TYPE C,
END OF ITAB.
ITAB-COLUMN1 = 'abc'. ITAB-COLUMN2 = '12'. ITAB-COLUMN3 = 3.ITAB-COLUMN4 = 'xyz'.
COLLECT ITAB.
WRITE / SY-TABIX.
ITAB-COLUMN1 = 'def'. ITAB-COLUMN2 = '34'. ITAB-COLUMN3 = 5.ITAB-COLUMN4 = 'xyz'.
COLLECT ITAB.
WRITE / SY-TABIX.
ITAB-COLUMN1 = 'abc'. ITAB-COLUMN2 = '12'. ITAB-COLUMN3 = 15.ITAB-COLUMN4 = 'xyz'.
COLLECT ITAB.
WRITE / SY-TABIX.
LOOP AT ITAB.
? WRITE: / ITAB-COLUMN1, ITAB-COLUMN2,ITAB-COLUMN3, ITAB-COLUMN4.
ENDLOOP.
?
結果:
1
2
1
abc 12 18 xyz
def 34 5 xyz
?
總結:collect 就是將相同屬性字段的值放到一起但是不累加,然后將其余的不相等屬性值相加成為結果。
與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的ABAP—COLLECT的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GUI_DOWNLOAD加列名行
- 下一篇: 函数模块:CTVB_COMPARE_TA