ABAP 内表类型
ABAP 内表类型
abap 内表类型有三种:分别是标准表,排序表和哈希表。其中标准表和排序表是索引表。
标准表
例:
*-----------------------标准表
定义结构体
TYPES : BEGIN OF t_line,
f1 TYPE c LENGTH 5,
f2 TYPE c LENGTH 4,
f3 TYPE i,
END OF t_line.定义标准表类型 标准表定义关键字只能使用with NON-UNIQUE
TYPES t_tab TYPE STANDARD TABLE OF t_line WITH NON-UNIQUE DEFAULT KEY . "将内表前面char类型字段定为关键字定义内表
DATA gt_itab TYPE t_tab WITH HEADER LINE. "带表头(工作区)
gt_itab-f1 = ‘like’.
gt_itab-f2 = ‘abap’.
gt_itab-f3 = 1.
APPEND gt_itab.
READ TABLE gt_itab INDEX 1.
*READ TABLE gt_itab WITH TABLE KEY f1 = ‘like’ f2 = ‘abap’. "使用with table key 要指定内表的所有关键字
*READ TABLE gt_itab with key f3 = 1. "使用 with key 读取关键字以外的字段即可
WRITE: / gt_itab-f1,gt_itab-f2,gt_itab-f3.
排序表
例:
*----------------排序表--------------
"定义排序表时务必明确指定unique/non-unique
*定义结构体类型
TYPES: BEGIN OF t_line1,
c1 TYPE c,
c2 TYPE i,
END OF t_line1.
*定义标准表类型
TYPES t_tab1 TYPE SORTED TABLE OF t_line1 WITH UNIQUE KEY c1. " 以c1作为主键
*定义内表类型
DATA gt_itab1 TYPE t_tab1 WITH HEADER LINE.
gt_itab1-c1 = ‘B’.
gt_itab1-c2 = ‘1’.
INSERT TABLE gt_itab1.
gt_itab1-c1 = ‘A’.
gt_itab1-c2 = ‘2’.
INSERT TABLE gt_itab1.
CLEAR gt_itab1.
READ TABLE gt_itab1 INDEX 2.
WRITE: / gt_itab1-c1,gt_itab1-c2.
哈希表
例:
*------------------------------哈希表
*哈希表是索引没有顺次索引 只能用哈希值计算出key值进行
*结构类型定义
TYPES: BEGIN OF t_line2,
c1 TYPE c,
c2 TYPE i,
END OF t_line2.
*定义标准表类型
TYPES t_tab2 TYPE HASHED TABLE OF t_line2 WITH UNIQUE KEY c1.
*定义内表
DATA gt_itab2 TYPE t_tab2 WITH HEADER LINE.
gt_itab2-c1 = ‘C’.
gt_itab2-c2 = ‘1’.
INSERT TABLE gt_itab2.
gt_itab2-c1 = ‘D’.
gt_itab2-c2 = ‘2’.
INSERT TABLE gt_itab2.
CLEAR gt_itab2.
READ TABLE gt_itab2 WITH TABLE KEY c1 = ‘C’.
WRITE : / gt_itab2-c1,gt_itab2-c2.
文章来自于网络,如果侵犯了您的权益,请联系站长删除!