日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

汇总内表数据:at end of方法和collect方法

發布時間:2025/3/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 汇总内表数据:at end of方法和collect方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ABAP開發中經常會遇到需要匯總內表中數據的情況,下面介紹兩種方法:at end of和collect。 1、at end of方法 ???在使用loop循環讀取已排序的內表時,可以訪問兩個自動生成的字段 CNT(<f>) 和SUM(<g>) ,系統在循環到不同值之前以及讀取內表最后一個紀錄后填充這兩個字段。 ????CNT(<f>)?:如果?<f>?是非數字字段,并且系統是根據?<f>?給內表排序的,則?CNT(<f>) 包含了不同值<f>的序號。 ???SUM(<g>)?:如果?<g>?是內表的數字字段,?SUM(<g>)?將包含?<g>?的值的合計。 注意:a、只能在給內表排序后才能訪問以上兩個字段,否則會產生運行時錯誤。 ?????b、使用at end of,需要另外定義內表的工作區,否則直接使用表頭,得到的數據會變成一串*。 2、collect方法 ???collect [<wa> into] <itab>.使用該語句,系統會檢查內表條目的標準關鍵字(所有非數字字段)是否相同,如果不同,collect語句的作用與append語句相似,將新行添至內表中;如果相同,collect語句不附加新航,但將工作區中的數字字段內容添加到現有條目中數字字段的內容中。使用該語句前,同樣需要先對內表進行排序。

以下面的例子來說明具體用法:
DATA:?BEGIN?OF?i_data?OCCURS?0,
???zlabst?LIKE?mard-labst,"匯總的良品庫存
??maktx??LIKE?makt-maktx,"物料描述
???matnr??LIKE?afpo-matnr,"物料號
??zpsmng?LIKE?afpo-psmng,"總的工單數量
??zwemng?LIKE?afpo-wemng,"總的已交貨數量
??zqty???LIKE?afpo-psmng,"總的欠單數量
END?OF?i_data.
DATA:?w_data?LIKE?TABLE?OF?i_data?WITH?HEADER?LINE.
DATA:?w_line?LIKE?LINE?OF?i_data.?
*根據物料號匯總工單總量/總入庫量/總欠工單數 ???SORT w_data BY matnr. *?AT?END?OF?方法:
????LOOP?AT?w_data?INTO?w_line.
??????AT?END?OF?matnr.
????????SUM.
????????i_data-matnr?=?w_line-matnr.
????????i_data-maktx?=?w_line-maktx.
????????i_data-zlabst?=?w_line-zlabst.
????????i_data-zpsmng?=?w_line-zpsmng.
????????i_data-zwemng?=?w_line-zwemng.
????????i_data-zqty?=?w_line-zqty.
????????APPEND?i_data.
????????CLEAR?i_data.
????????CLEAR?w_line.
??????ENDAT.
????ENDLOOP. *collect 方法 ??LOOP?AT?w_data.
????MOVE-CORRESPONDING?w_data?TO?i_data.
????COLLECT i_data.
????CLEAR?w_data.
????CLEAR?i_data.
??ENDLOOP.
????內表w_data中包含matnr/maktx/zlabst/zpsmng/zwemng/zqty六個字段,其中前兩個為非數字字段,后四個為數字字段,需要匯總的字段為最后三個。 ????at end of <f>方法,只匯總內表中f字段之后的字段,因此定義內表時要把不需要匯總的數字字段以及非數字字段(此處為zlabst/maktx)放在f字段(此處為matnr)前面,需要匯總的字段放在后面。 ????collect會把內表中所有數字字段匯總起來,所以此例中的zlabst字段也會被匯總,需要另行處理,另外還需注意內表標準關鍵字的問題。
與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的汇总内表数据:at end of方法和collect方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。