vaule:collect在非數值字段相同的情況下,起到了數值字段匯總作用。
非數值字段不同的情況下,效果和append相同執行插入內表操作,當非數值字段相同的時候,則相當於modify的效果,只不過是將數值字段進行匯總相加后更新。
語法:collect W_table into I_table .
代碼如下:
TYPES:BEGIN OF TY_TEST, ID(3) TYPE C, MENGE TYPE I, END OF TY_TEST. DATA:I_TEST TYPE TABLE OF TY_TEST, W_TEST TYPE TY_TEST. DATA:I_TEST2 TYPE TABLE OF TY_TEST. W_TEST-ID = '001'. W_TEST-MENGE = 10. APPEND W_TEST TO I_TEST. W_TEST-ID = '001'. W_TEST-MENGE = 70. APPEND W_TEST TO I_TEST. W_TEST-ID = '002'. W_TEST-MENGE = 20. APPEND W_TEST TO I_TEST. W_TEST-ID = '002'. W_TEST-MENGE = 50. APPEND W_TEST TO I_TEST. W_TEST-ID = '002'. W_TEST-MENGE = 80. APPEND W_TEST TO I_TEST. W_TEST-ID = '003'. W_TEST-MENGE = 30. APPEND W_TEST TO I_TEST. W_TEST-ID = '003'. W_TEST-MENGE = 90. APPEND W_TEST TO I_TEST. LOOP AT I_TEST INTO W_TEST. COLLECT W_TEST INTO I_TEST2."關鍵一步。。。" CLEAR:W_TEST. ENDLOOP. WRITE:/ 'Collect前的內容:' . WRITE:/1(12) '編號' , '數量'. LOOP AT I_TEST INTO W_TEST. WRITE:/ W_TEST-ID, ' ',W_TEST-MENGE. CLEAR:W_TEST. ENDLOOP. WRITE:/ . WRITE:/ 'Collect后的結果:' . WRITE:/1(12) '編號' , '數量'. LOOP AT I_TEST2 INTO W_TEST. WRITE:/ W_TEST-ID , ' ',W_TEST-MENGE. CLEAR:W_TEST. ENDLOOP.