SAP ABAP 復(fù)制內(nèi)部表

2018-01-01 12:56 更新

當(dāng)我們從帶有標(biāo)題行的內(nèi)部表中讀取記錄時,該記錄將從表本身移動到標(biāo)題行。 這是我們的程序工作的標(biāo)題行。 這同樣適用于創(chuàng)建新記錄。 它是您使用的標(biāo)題行,從中將新記錄發(fā)送到表體本身。

要復(fù)制記錄,我們可以使用SELECT語句從表中選擇所有記錄,然后使用MOVE語句將記錄從原始表移動到新的內(nèi)部表中到名稱對應(yīng)的字段。

以下是MOVE語句的語法:

MOVE <table_field> TO <internal_tab_field>.

例子

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

Select * FROM ZCUSTOMERS1. 
MOVE ZCUSTOMERS1-name TO itab01-name. 
MOVE ZCUSTOMERS1-dob TO itab01-dob. 
ENDSELECT.
 
Write: / itab01-name, itab01-dob.

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

MARGARET  		02.11.1994 

選擇循環(huán)每次填充一個字段,使用MOVE語句將數(shù)據(jù)從一個表的字段移動到另一個表的字段。 在上面的示例中,使用MOVE語句將ZCUSTOMERS1表的內(nèi)容移動到內(nèi)部表中的相應(yīng)字段。 你可以只用一行代碼來完成這個動作。 您可以使用MOVECORRESPONDING語句。

以下是MOVE-CORRESPONDING語句的語法 -

MOVE-CORRESPONDING <table_name> TO <internal_tab>. 

它告訴系統(tǒng)將數(shù)據(jù)從CUSTOMERS的字段移動到itab01中的相應(yīng)字段。

例子

REPORT  ZCUSTOMERLIST. 
TABLES: ZCUSTOMERS1. 
DATA: Begin of itab01 occurs 0,
      customer LIKE ZCUSTOMERS1-customer,
      name LIKE ZCUSTOMERS1-name,
      title LIKE ZCUSTOMERS1-title,
      dob LIKE ZCUSTOMERS1-dob, 
END OF itab01. 

SELECT * from ZCUSTOMERS1. 
MOVE-Corresponding ZCUSTOMERS1 TO itab01. 
APPEND itab01. 
ENDSELECT. 
LOOP AT itab01. 
Write: / itab01-name, itab01-dob. 
ENDLOOP. 

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

MARK           21.05.1981 
JAMES          14.08.1977 
AURIELE        19.06.1990 
STEPHEN        22.07.1985 
MARGARET       02.11.1994 

這是由于兩者都具有匹配的字段名稱的事實。 使用此語句時,需要確保兩個字段都具有匹配的數(shù)據(jù)類型和長度。 它已經(jīng)在這里用LIKE語句以前完成。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號