Internal table 备忘
2013-01-05 23:56 程序开发助手 阅读(388) 评论(0) 编辑 收藏 举报1. type 方式定义内表:
定义内表的表结构类型,就像创建数据库表前,要定义表的字段一样
"人员结构休类型
types: begin of PersonInfo,
SID type string,
Name type string,
end of PersonInfo.
"定义内表的类型
TYPES itab_PersonInfo TYPE STANDARD TABLE OF PersonInfo.
"定义内表的实例
data itab_person TYPE itab_PersonInfo.
此时,内表itab_PersonInfo默认的初始化大小为0,可以用INITIAL SIZE 设定初始化大小,如:
TYPES itab_PersonInfo TYPE STANDARD TABLE OF PersonInfo INITIAL SIZE 10.
INITIAL SIZE(初始化大小)的主要功能是分配Select数据到internal table时的缓冲大小,为0系统将自动分配,默认8kb。
data itab_person TYPE itab_PersonInfo.默认没有为内表分配表头行,可通过 WITH HEADER LINE 分配表头行,
data itab_person TYPE itab_PersonInfo WITH HEADER LINE.
2. Data 方式定义内表:
"定义工作区
data: BEGIN OF EMP,
SID type string,
Name TYPE string,
END OF EMP."定义内表
data itab_emp like TABLE of emp.
也可同时指定初始化大小,以及表头行:
"定义内表,指定初始化大小,以及表头行
data itab_emp like TABLE of emp INITIAL SIZE 10 WITH HEADER LINE.
3. abap3.0之前Type方式定义内表:
"人员结构休类型
types: begin of PersonInfo,
SID type string,
Name type string,
end of PersonInfo.
TYPES itab_PersonInfo TYPE PersonInfo OCCURS 0.data itab_person TYPE itab_PersonInfo WITH HEADER LINE.
itab_person-SID = 'sid'.
4. abap3.0之前Data方式定义内表:
默认定义的表头行
data: BEGIN OF Itab_Person OCCURS 0,
sid TYPE string,
name TYPE string,END OF Itab_Person.Itab_Person-sid = '2003'.
没定定义表头行:
data: BEGIN OF wa_Person,
sid TYPE string,
name TYPE string,END OF wa_Person.data: itab_person LIKE wa_person OCCURS 10.
指定表头行:
data: itab_person LIKE wa_person OCCURS 10 WITH HEADER LINE.