本文主要介绍一下SAP ABAP中创建内表的几种方式
参照局部结构体类型定义内表
创建流程
1.首先定义结构体类型
TYPES:BEGIN OF <t_str>, ... END OF <t_str>.
2.其次参照上一步创建的局部结构体类型定义内表
DATA:itab TYPE [STANDARD|SORTED|HASHED] TABLE OF <t_str> WITH {UNIQUE|NON-UNIQUE} KEY <keys> [INTIAL SIZE <n>].
示例代码
TYPES:BEGIN OF S_SFLIGHT, Z_CARRID TYPE SFLIGHT-CARRID, Z_CONNID TYPE SFLIGHT-CONNID, Z_FLDATE TYPE SFLIGHT-FLDATE, Z_PRICE TYPE SFLIGHT-PRICE, END OF S_SFLIGHT. DATA:GT_SFLIGHT TYPE TABLE OF S_SFLIGHT WITH NON-UNIQUE DEFAULT KEY.
效果演示
参照局部表类型定义内表
创建流程
1. 首先定义结构体类型
TYPES:BEGIN OF <t_str>, ... END OF <t_str>.
2.其次参照上一步创建的局部结构体类型定义表类型
TYPES:t_itab TYPE [STANDARD|SORTED|HASHED] TABLE OF <t_str> WITH {UNIQUE|NON-UNIQUE} KEY <keys> [INTIAL SIZE <n>].
- [STANDARD|SORTED|HASHED]为可选参数,从左到右分别对应标准表,排序表和哈希表;若不指定该参数则默认为标准表
- [INTIAL SIZE ]为可选参数,可以指定定义的内表的大小
3.最后参照上一步创建的局部表类型定义内表
DATA:itab TYPE <t_itab> [WITH HEADER LINE].
- [WITH HEADER LINE]为可选参数,可以指定内表附带工作区,将在下一篇文章中讲解
示例代码
TYPES:BEGIN OF S_SFLIGHT, Z_CARRID TYPE SFLIGHT-CARRID, Z_CONNID TYPE SFLIGHT-CONNID, Z_FLDATE TYPE SFLIGHT-FLDATE, Z_PRICE TYPE SFLIGHT-PRICE, END OF S_SFLIGHT. TYPES:T_SFLIGHT TYPE TABLE OF S_SFLIGHT WITH NON-UNIQUE DEFAULT KEY. DATA:GT_SFLIGHT TYPE T_SFLIGHT.
效果演示
参照全局表定义内表
创建流程
DATA:itab TYPE <target> WITH [UNIQUE|NON-UNIQUE] KEY <keys> [INTIAL SIZE <n>] [WITH HEADER LINE].
示例代码
DATA:GT_SFLIGHT TYPE STANDARD TABLE OF SFLIGHT WITH NON-UNIQUE DEFAULT KEY.
效果演示
参照全局表类型定义内表
创建流程
DATA:itab TYPE <T_itab> [WITH HEADER LINE].
- 为数据字典中全局表类型
全局表类型参数
示例代码
DATA:GT_SFLIGHT TYPE ZT_SFLIGHT.
效果演示
旧式内表定义法
创建流程
DATA:BEGIN OF <itab> OCCURS 0, f1, f2, f3 ...... END OF <itab>.
- 旧式内表定义法即使没有使用[WITH HEADER LINE]语句,也默认包含表头行
- 旧式内表定义法只能用于标准表的创建
示例代码
DATA:BEGIN OF GT_SFLIGHT OCCURS 0, CARRID TYPE SFLIGHT-CARRID, CONNID TYPE SFLIGHT-CONNID, FLDATE TYPE SFLIGHT-FLDATE, PRICE TYPE SFLIGHT-PRICE, END OF GT_SFLIGHT.
效果演示