SAP ABAP 复制内部表

当我们从带有标题行的内部表中读取记录时,该记录将从表本身移动到标题行。 这是我们的程序工作的标题行。 这同样适用于创建新记录。 它是您使用的标题行,从中将新记录发送到表体本身。

赛锐信息:SAP ABAP 复制内部表 图1
赛锐信息,SAP ERP定制,ERP定制

要复制记录,我们可以使用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 

选择循环每次填充一个字段,使用MOVE语句将数据从一个表的字段移动到另一个表的字段。 在上面的示例中,使用MOVE语句将ZCUSTOMERS1表的内容移动到内部表中的相应字段。 你可以只用一行代码来完成这个动作。 您可以使用MOVECORRESPONDING语句。

以下是MOVE-CORRESPONDING语句的语法 –

MOVE-CORRESPONDING <table_name> TO <internal_tab>. 

它告诉系统将数据从CUSTOMERS的字段移动到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语句以前完成。

关于赛锐信息

作为SAP的资深合作伙伴,赛锐信息是一家专业提供SAP行业化管理软件解决方案的顾问公司,致力于为企业提供SAP ERP系统咨询服务、IT规划、业务流程优化、信息系统实施、行业信息系统方案开发,运营外包及售后维护等全面的服务方案。已服务1000+家不同行业、规模的大中小型企业客户。在电子高科技、汽车零部件、印刷包装、医疗器械、快消品、专业服务等行业信息化管理领域具有领导性地位。

相关文章

联系我们

联系我们

130-0752-1773

在线咨询:点击这里给我发消息

邮件:info@sapzx.com

工作时间:周一至周五9:00-18:00,节假日正常休息

关注微信
关注微信
分享本页
返回顶部