Abap 内表
什么是内表:内表是内存中建立的一个临时表,你可以在程序运行时对表中的数据进行,插
入,修改,删除等操作,程序跑完了,就会被释放。
--内表定义
1 内表有三种类型:标准表,哈希表,排序表(主要用标准表)。
2 预定义的基本数据类型有:C(文本型数据)、N(数字型)、T(时间型)、X(十六进制)、 D
(日期型)、F(浮点型)、I(整数型)、P(压缩号)。
意:在 abap 中要用 data 定义数据对象,也就是定义变量(内表也是一种变量)。后面再
用 type 或 like 来定义变量的类型,这里要要注意 type 和 like 的用法,一般能用 like 的
地方都能用 type。当用 type 的不一定能用 like。因为 type 一般定义的预定义和自定义
的类型,而 like 用于定义词典对象和已经存在的对象。
其中 types 直接定义的数据类型与结构,是没有分配内存空间的。
3 内表定义三个步骤:
1)定义类型
2)参考类型定义结构、工作区域、变量
3)参考类型定义内表
定义类型:通过 types 开头定义
TYPES: BEGIN OF line,
field1 TYPE i,
field2 TYPE i,
END OF line.
参考类型定义结构、工作区域、变量:定义结构通过 data 开头定义
DATA: WA _ITAB TYPE(LIKE) line. “ 声明一个内表工作区
参考类型定义内表:定义内表通过 data 开头定义
DATA: ITAB TYPE(LIKE) line OCCURS 0. “ 声明一个无工作区的内表
DATA: ITAB TYPE(LIKE) STANDARD TABLE OF line INITIAL SIZE 0. “ 声明一个有工作
区的内表
DATA: ITAB TYPE(LIKE) line OCCURS 0 WITH HEADER LINE.
DATA: ITAB TYPE(LIKE) STANDARD TABLE OF line INITIAL SIZE 0 WITH HEADER
LINE.
直接定义内表,这个内表是有工作区的
DATA: BEGIN OF ITAB OCCURS 0 ,
CARR1 LIKE SPFLI-CARRID,
CONN1 LIKE SPFLI-CONNID,
END OF ITAB.
[* DATA: ITAB1 TYPE ITAB.(错误的,定义出来的什么都不是)。
正确方法:ITAB1 TYPE ITAB OCCURS 0.(这样定义后的是一个无工作区的内表)。
DATA: ITAB1 LIKE ITAB OCCURS 0 WITH HEADER LINE. “定义一个带工作区内表]
注