SAP ABAP——内表(三)【工作区与表头】

举报
Thunder Wang 发表于 2023/01/31 21:54:40 2023/01/31
【摘要】 本文主要介绍一下SAP ABAP中内表的工作区和表头以及使用表头的内表的简化增删查改语句。

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较深入的研究。


💅文章概要:本文主要介绍一下SAP ABAP中内表的工作区和表头以及使用表头的内表的简化增删查改语句。


🤟每日一言:给一生最美好的回报就是交一份满意的答卷。


工作区

- 工作区的含义


         工作区就是一个与对应内表结构完全一致的结构体变量,但是工作区内只能存储至多一条数据。对于内表中数据的增删查改都需要通过工作区去进行操作

PS:注意!最好给每一个内表都设置对应的工作区,并且每次数据操作完毕后都要清空工作区!除此之外,工作区的数据都需要先进入内表,否则内表中不会有任何数据!!!下面用两个案例来进行演示!(使用的表为索引表)


- 案例代码演示(使用APPEND语句)

DATA:GT_SFLIGHT TYPE TABLE OF SFLIGHT. "参照数据库表sflight定义内表
DATA:GS_SFLIGHT TYPE SFLIGHT. "参照数据库表sflight定义工作区

GS_SFLIGHT-CARRID = 'AC'.
GS_SFLIGHT-CONNID = 0820.
GS_SFLIGHT-FLDATE = '20221031'.
GS_SFLIGHT-PRICE = 1500.

APPEND GS_SFLIGHT TO GT_SFLIGHT. "将工作区中数据插入内表中

MODIFY SFLIGHT FROM TABLE GT_SFLIGHT.

- 效果演示(使用APPEND语句)

46bbb0506a61ab7acd7261ebd9604364.png


- 案例代码演示(不使用APPEND语句)

DATA:GT_SFLIGHT TYPE TABLE OF SFLIGHT. "参照数据库表sflight定义内表
DATA:GS_SFLIGHT TYPE SFLIGHT. "参照数据库表sflight定义工作区

GS_SFLIGHT-CARRID = 'AC'.
GS_SFLIGHT-CONNID = 0820.
GS_SFLIGHT-FLDATE = '20221031'.
GS_SFLIGHT-PRICE = 1500.

MODIFY SFLIGHT FROM TABLE GT_SFLIGHT.

- 效果演示(不使用APPEND语句)

b4dcf362014894c4d6f2a6b6e8e3d236.png


表头

- 表头的含义


         表头是一个与内表名字相同的工作区,需要在创建内表时最后使用【WITH HEADER LINE】语句进行定义,对于拥有表头的内表来说,其增删查改语句相较没有表头的内表可以进行简化,下面会列出常用的对比
- 含表头内表的创建


下面用一个案例来进行演示:

DATA:GT_SFLIGHT TYPE TABLE OF SFLIGHT WITH HEADER LINE. "参照数据库表sflight定义含表头内表

1f9ef4462ddcab4dc29dd5320b707c57.png


PS说明:


1)表头行的符号是一顶帽子;
2)指定内表需要在后面加上"[]",比如指定GT_SFLIGHT内表需要写成"GT_SFLIGHT[]",否则系统会认为GT_SFLIGHT是同名工作区


带表头内表与不带表头内表语句比较

PS:【wa】代表工作区,【itab】代表内表
- 所有内表(Standard,Sorted,Hashed Type)

不带表头时使用的语句 带表头时使用的语句
INSERT wa INTO TABLE itab. INSERT TABLE itab.
COLLECT wa INTO itab COLLECT itab.
READ TABLE itab... INTO wa. READ TABLE itab...
MODIFY TABLE itab FROM wa. MODIFY TABLE itab...
MODIFY itab FROM wa... WHERE... MODIFY itab... WHERE...
DELETE TABLE itab FROM wa. DELETE TABLE itab.
LOOP AT itab INTO wa... LOOP AT itab...

- INDEX表(Standard,Sorted Type)

不带表头时使用的语句 带表头时使用的语句
APPEND wa TO itab. APPEND itab.
INSERT wa INTO itab... INSERT itab.
MODIFY itab FROM wa... MODIFY itab...

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。