SAP_ABAP_邊學邊記錄_INTERNAL TABLE(內表)
INTERNAL TABLE(內表)說明
INTERNAL TABLE如另篇文中說明,是存放資料的介質,從DB取出資料之後就是放在INTERNAL TABLE處理之後才顯示在畫面上的。宣告的方式有三種,另篇的說明是標準的,這邊重新介紹過!
宣告方式_STANDARD
可參照DB或是參照WORK AREA,下述方式即參照了WORK AREA。其STANDARD是可有可無的!DATA LINE_TABLE TYPE STANDARD TABLE OF LINE.
STANDARD說明
宣告為STANDARD的部份,其資料取出是從第一筆開始按序讀取。(如透過ASP.NET的DATA READER)取資料的方式一般來說是透過LOOP來依序取得載入。
在寫入資料的時候,可以將資料寫到最後,也可以依指定位址寫入
宣告方式_SORTED
DATA LINE_TABLE TYPE SORTED TABLE OF LINE WITH NON-UNIQUE KEY CELL1 CELL2.
SORTED說明
查詢的時候會依KEY值排序,再透過二分法來做查詢。宣告方式_HASHED
DATA LINE_TABLE TYPE HASHED TABLE OF LINE WITH UNIQUE KEY CELL.
HASHED說明
透過HASH表來查詢,KEY值必填,只能讀取。WITH NON-UNIQUE與UNIQUE的說明
此參數決定了具相同關鍵字的數據是否重覆出現!在STANDARD中是不允許UNIQUE的宣告,且不需特別設定WITH NON-UNIQUE,而在HASHED中是不允許設置WITH NON-UNIQUE,且必需設置UNIQUE。INITIAL SIZES n說明
n可以為0或是任意正整數值,設置與否皆不影響執行,只會影響效率,如n小於需求,則在執行程序的時候會去自行擴增,此時會影響效率,而n設置過大的時候會導致資源浪費。如n為0或不指定,則預設給予8kb的空間。
其它宣告方式
DATA <INTERNAL TABLE> TYPE <結構類型> WITH [UNIQUE|NON-UNIQUE] [INITIAL SIZE n] [WITH HEADER LINE].
DATA <INTERNAL TABLE> LIKE TABLE OF <内表或者透明表> WITH [UNIQUE|NON-UNIQUE] [INITIAL SIZE n] [WITH HEADER LINE]。
其它宣告方式範例
TABLES:SOURCE_TABLE. //來源為透明表的時候必需要先IMPORT進來
TYPES:BEGIN OF INTERNAL_TABLE.
NAME LIKE SOURCE_TABLE-CELL1.
TEL LIKE SOURCE_TABLE-CELL2.
ADD LIKE SOURCE_TABLE-CELL3.
END OF INTERNAL_TABLE.
//賦值
MOVE 'A' TO INTERNAL_TABLE.NAME.
MOVE 'B' TO INTERNAL_TABLE.TEL.
MOVE 'C' TO INTERNAL_TABLE.ADD.
//顯示
WRITE INTERNAL_TABLE.
沒有留言:
張貼留言