- SAP ABAP 教程
- SAP ABAP - 首頁
- SAP ABAP - 概述
- SAP ABAP - 環境
- SAP ABAP - 螢幕導航
- SAP ABAP - 基本語法
- SAP ABAP - 資料型別
- SAP ABAP - 變數
- SAP ABAP - 常量和字面量
- SAP ABAP - 運算子
- SAP ABAP - 迴圈控制
- SAP ABAP - 決策
- SAP ABAP - 字串
- SAP ABAP - 日期和時間
- SAP ABAP - 資料格式化
- SAP ABAP - 異常處理
- SAP ABAP - 字典
- SAP ABAP - 資料域
- SAP ABAP - 資料元素
- SAP ABAP - 表
- SAP ABAP - 結構
- SAP ABAP - 檢視
- SAP ABAP - 搜尋幫助
- SAP ABAP - 鎖物件
- SAP ABAP - 模組化
- SAP ABAP - 子程式
- SAP ABAP - 宏
- SAP ABAP - 函式模組
- SAP ABAP - 包含程式
- SAP ABAP - Open SQL 概述
- SAP ABAP - Native SQL 概述
- SAP ABAP - 內部表
- SAP ABAP - 建立內部表
- ABAP - 填充內部表
- SAP ABAP - 內部表複製
- SAP ABAP - 讀取內部表
- SAP ABAP - 刪除內部表
- SAP ABAP - 面向物件
- SAP ABAP - 物件
- SAP ABAP - 類
- SAP ABAP - 繼承
- SAP ABAP - 多型性
- SAP ABAP - 封裝
- SAP ABAP - 介面
- SAP ABAP - 物件事件
- SAP ABAP - 報表程式設計
- SAP ABAP - 對話程式設計
- SAP ABAP - 智慧表單
- SAP ABAP - SAPscript
- SAP ABAP - 使用者出口
- SAP ABAP - 使用者出口
- SAP ABAP - 業務附加功能 (Business Add-Ins)
- SAP ABAP - Web Dynpro
- SAP ABAP 有用資源
- SAP ABAP - 問答
- SAP ABAP - 快速指南
- SAP ABAP - 有用資源
- SAP ABAP - 討論
SAP ABAP - 內部表複製
當我們從帶有標題行的內部表中讀取記錄時,該記錄將從表本身移動到標題行。然後,我們的程式將使用標題行。建立新記錄時也是如此。您使用的是標題行,新記錄就是從標題行傳送到表體本身的。
要複製記錄,我們可以使用 SELECT 語句選擇表中的所有記錄,然後使用 MOVE 語句將記錄從原始表移動到新內部表中名稱對應的欄位。
以下是 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.
以上程式碼產生以下輸出:
MARGARET 02.11.1994
select 迴圈一次移動一個欄位,使用 MOVE 語句將資料從一個表的欄位移動到另一個表。在上面的示例中,MOVE 語句用於將 ZCUSTOMERS1 表的內容移動到內部表中相應的欄位。您可以只用一行程式碼完成此操作。您可以使用 MOVECORRESPONDING 語句。
以下是 MOVE-CORRESPONDING 語句的語法:
MOVE-CORRESPONDING <table_name> TO <internal_tab>.
它告訴系統將 ZCUSTOMERS1 的欄位資料移動到 itab01 中相應的欄位。
示例
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.
以上程式碼產生以下輸出:
MARK 21.05.1981 JAMES 14.08.1977 AURIELE 19.06.1990 STEPHEN 22.07.1985 MARGARET 02.11.1994
這是因為兩者都有匹配的欄位名稱。使用此語句時,您需要確保兩個欄位的資料型別和長度匹配。這裡之前已經使用 LIKE 語句完成了。
廣告