- 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 语句完成了。
广告