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

发布于:2022-11-06 ⋅ 阅读:(352) ⋅ 点赞:(0)

 原文链接---SAP ABAP——内表(三)【工作区与表头】 - 芒果个人日志 (wyz-math.cn)

 欢迎大家来到我的个人日志——芒果个人日志

本文主要介绍一下SAP ABAP中内表的工作区和表头

目录

工作区

- 工作区的含义

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

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

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

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

表头

- 表头的含义

- PS说明:

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


工作区

- 工作区的含义


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

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语句)

内表数据成功插入


- 案例代码演示(不使用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语句)

内表中无数据存在

表头

- 表头的含义


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


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

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

说明


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...
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到