SAP ABAP 創(chuàng)建內(nèi)部表

2018-01-01 12:56 更新

DATA語句用于聲明一個(gè)內(nèi)部表。 程序必須告知表的開始和結(jié)束位置。 所以使用BEGIN OF語句,然后聲明表名。 之后,使用OCCURS添加,后跟一個(gè)數(shù)字,這里為0. OCCURS告訴SAP正在創(chuàng)建一個(gè)內(nèi)部表,0表示它最初不包含任何記錄。 它將隨著它填充數(shù)據(jù)而擴(kuò)展。

以下是語法

DATA: BEGIN OF <internal_tab> Occurs 0,

讓我們在一個(gè)新行上創(chuàng)建字段。 例如,創(chuàng)建聲明為LIKE ZCUSTOMERS1-name的\'name\'。 創(chuàng)建另一個(gè)名為“dob"的字段,LIKE ZCUSTOMERS1-dob。 最初給內(nèi)部表中的字段名稱與其他地方創(chuàng)建的其他字段相同的名稱很有用。 最后,使用“END OF< internal_tab&gt ;."聲明內(nèi)部表的結(jié)尾,如下面的代碼所示:

DATA: BEGIN OF itab01 Occurs 0,
   name LIKE ZCUSTOMERS1-name,
   dob LIKE ZCUSTOMERS1-dob, 
END OF itab01.

這里‘itab01’是在SAP中創(chuàng)建臨時(shí)表時(shí)常用的縮寫。 OCCURS子句用于通過聲明表的字段來定義內(nèi)部表的主體。 當(dāng)使用OCCURS子句時(shí),如果需要,您可以指定數(shù)字常量‘n’
以確定其他默認(rèn)內(nèi)存。
OCCUR 0子句使用的內(nèi)存的默認(rèn)大小為8 KB。 現(xiàn)在創(chuàng)建內(nèi)部表的結(jié)構(gòu),并且可以寫入代碼以用記錄填充它。

可以使用或不使用標(biāo)題行創(chuàng)建內(nèi)部表。 要?jiǎng)?chuàng)建帶有標(biāo)題行的內(nèi)部表,請(qǐng)?jiān)趦?nèi)部表定義中的OCCURS子句之前使用OCCURS子句之前的BEGIN OF子句或WITH HEADER LINE子句。 要?jiǎng)?chuàng)建沒有標(biāo)題行的內(nèi)部表,請(qǐng)使用不帶BEGIN OF子句的OCCURS子句。

您還可以使用TYPES語句創(chuàng)建內(nèi)部表作為本地?cái)?shù)據(jù)類型(僅在當(dāng)前程序的上下文中使用的數(shù)據(jù)類型)。 此語句使用TYPE或LIKE子句來引用現(xiàn)有表。

創(chuàng)建內(nèi)部表作為本地?cái)?shù)據(jù)類型的語法是:

TYPES <internal_tab> TYPE|LIKE <internal_tab_type> OF 
   <line_type_itab> WITH <key> INITIAL SIZE <size_number>.

這里,< internal_tab_type> 指定內(nèi)部表的表類型< internal_tab> 和< line_type_itab> 指定內(nèi)部表的行的類型。 在TYPES語句中,可以使用TYPE子句將內(nèi)部表的行類型指定為數(shù)據(jù)類型,并使用LIKE子句將行類型指定為數(shù)據(jù)對(duì)象。 為內(nèi)部表指定鍵是可選的,如果用戶未指定鍵,SAP系統(tǒng)將使用任意鍵定義表類型。

INITIAL SIZE< size_number> 通過向其分配初始量的內(nèi)存來創(chuàng)建內(nèi)部表對(duì)象。 在上述語法中,INITIAL SIZE子句為size_number表行保留一個(gè)內(nèi)存空間。 每當(dāng)聲明內(nèi)部表對(duì)象時(shí),表的大小不屬于表的數(shù)據(jù)類型。

注意 - 首次填充內(nèi)部表時(shí)消耗的內(nèi)存大大減少。

例子

步驟1 - 執(zhí)行SE38交易代碼,開啟ABAP編輯器。 顯示ABAP編輯器的初始屏幕。

步驟2 - 在初始屏幕中,輸入程序的名稱,選擇源代碼單選按鈕,然后單擊創(chuàng)建按鈕以創(chuàng)建新程序。

步驟3 - 在“ABAP:程序?qū)傩?quot;對(duì)話框中,在標(biāo)題字段中輸入程序的簡短描述,從屬性中的類型下拉菜單中選擇\'可執(zhí)行程序\'選項(xiàng) 組框。 單擊保存按鈕。

步驟4 - 在ABAP編輯器中編寫以下代碼。

REPORT ZINTERNAL_DEMO. 
TYPES: BEGIN OF CustomerLine, 
Cust_ID TYPE C, 
Cust_Name(20) TYPE C, 
END OF CustomerLine. 
 
TYPES mytable TYPE SORTED TABLE OF CustomerLine  
WITH UNIQUE KEY Cust_ID. 
WRITE:/'The mytable is an Internal Table'. 

步驟5 - 保存,激活并照常執(zhí)行程序。

在本示例中,mytable是一個(gè)內(nèi)部表,并且在Cust_ID字段上定義了唯一鍵。

上面的代碼產(chǎn)生以下輸出 -

The mytable is an Internal Table.
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)