1、内表
释义:和结构体一样,也是一个仅在程序运行时存在的对象(存储空间),程序运行时存在,程序结束后被消除(释放),可包含多条记录的数据表。
在ABAP/4中主要使用表格。表格是R/3系统中的关键数据结构,常用的数据都存储在关系型数据库的表格中。内表和结构体是两种使用较为频繁的数据类型,必需掌握!
1.1 内表的类型:
A、标准表(Standard) B、排序表(Sorted) C、哈希表(Hashed)
1.2、内表的创建: header line(表头行) work area( 工作区)
自定义创建内表关键字:DATA
首先自定义内表语法:依然关键字为TYPES,表示自定义类型,同结构体的自定义关键字。
TYPES<表名>TYPE<类型>OCCURS<初始大小>.
栗子:
TYPES VECTOR TYPE I OCCURS 10.
TYPES: BRGIN OF LINE, "这里 定义的是个类型
COLUMN1 TYPE I,
COLUMN2 TYPE I,
COLUMN3 TYPE I,
END OF LINE.
TYPES: ITAB TYPE LINE OCCURS 10. “定义内表,关键字组合使用 TYPES......OCCURS 少一个就不是定义的内表了,新手注意。
1.3、内表创建的方式比较灵活,可以:a.参考结构体 b.参考其他内表 c.参考其他透明表 d.直接定义各个字段
UNIQUE|NON-UNIQUE :指定关键字,只适用于排序表和哈希表
INITIAL SIZE n :指定初始化内表大小
WITH HEADERLINE : 定义内表是否有表头
DATA <内表名> TYPE<结构类型> WITH [UNIQUE | NON-UNIQUE]
[INITIAL SIZE n] [WITH HEADER LINE]
DATA<内表名> LIKE TABLE OF <内表或透明表> WITH [UNIQUE | NON-UNIQUE]
[INITIAL SIZE n] [WITH HEADER LINE]
DATA: BEGIN OF itabOCCURS n,
......
......
END OF itab [VALID BTEWEEN f1 AND f2].
栗子:
TABLES:user1. "参照某一个透明表时,必需先引用定义。关键字 “TABLES”,类似于其他语言的导入。
TYPES: BEGIN OF emp,
name LIKE usr21