abap开发内表基础知识总结

来源:互联网 发布:网络招商政策 编辑:程序博客网 时间:2024/04/28 10:22

1.定义一个结构体

DATA: BEGIN OF LS_MASTNR,

MATNR TYPE MATNR,

MAKTX TYPE MAKTX,

END OF LS_MATNR.

 

2.定义一个包含表头的内表

DATA: BEGIN OF LS_MAT OCCURS 0,

MATNR TYPE MATNR,

MAKTX TYPE MAKTX,

END OF LS_MAT.

 

3.参考数据结构来定义内表1

DATA: LT_MAT LIKE TABLE OF LS_MATNR WITH HEADER LINE.

 

4.参考数据结构来定义内表2

DATA:BEGIN OF LT_MATNR OCCURS 0.

INCLUDE STRUCTURE LS_MATNR.

DATA:END OF LT_MATNR.

 

5.常量定义

CONSTANTS:L_STR(10) TYPE C VALUE 'HELLO WORLD'.

 

6.RANGES 建立选择型内表

RANGES: R_MAT FOR MARA-MATNR.

 

DATA: BEGIN OF R_MAT OCCURS 0,

SIGN TYPE C LENGTH 1,

OPTION TYPE C LENGTH 1,

LOW TYPE MARA-MATNR,

HIGH TYPE MARA-MATNR,

END OF R_MAT.

 

7.LIKE、LIKE LINE OF、LIKE TABLE OF、TYPE、TYPE STANDARD TABLE OF之间的区别

LIKE后接DATA类型的变量,可以是自定义变量,也可以是系统变量

LIKE LINE OF 后接内表,表示定义一个工作区。A LIKE LINE OF B,B是内表,A是工作区

LIKE TABLE OF 后接工作区,表示定义一个内表,SUCH AS:

DATA: BEGIN OF WA_ITAB,

MATNR TYPE MARA-MATNR,

MAKTX TYPE MARA-MAKTX,

END OF WA_ITAB."不加OCCURS 0表示定义的工作区,加上表示定义的内表,此处是工作区

DATA:IT_TAB LIKE TABLE OF WA_ITAB."定义一个内表

 

TYPE 后接自定义数据类型,可以是基本数据类型C、I、N,也可以是自定义数据类型,SUCH AS:

TYPES:BENGIN OF TY_ITAB,

MATNR TYPE MARA-MATNR,

MAKTX TYPE MARA-MAKTX,

END OF TY_ITAB.

DATA: IT_TAB TYPES STANDARD TABLE TY_ITAB,"定义一个内表

           WA_TAB TYPES TY_ITAB."定义一个工作区

 

8.内表基本操作语法(增删改查)

不带表头的内表:

APPEND <WA> TO <ITAB>.

INSERT <WA> INTO <ITAB> INDEX X.

INSERT <WA> INTO TABLE <ITAB>.

MODIFY <ITAB> INDEX X FROM <WA>.

DELETE <ITAB> INDEX IDX.

DELETE TABLE <ITAB> FROM <WA>.

READ TABLE <ITAB> INDEX X INTO <WA>.

LOOP AT <ITAB> INTO <WA>.

带表头的内表:

APPEND <ITAB>.

INSERT <ITAB> INDEX X.

MODIFY <ITAB> INDEX X.

DELETE TABLE <ITAB>.

READ TABLE <ITAB> INDEX X.

LOOP AT <ITAB>.

 

9.内表数据插入(比循环插入法速度快20倍)

INSERT LINES OF <ITAB1> [FROM N1 ] [TO N2] INTO  [TABLE] <ITAB2> INDEX X.

不指定N1和N2时,ITAB1可以是任意类型的表,ITAB2必须是索引表(标准表和排序表都是索引表,哈希表是非索引表);J如果添加TABLE关键字,ITAB2可以是任意类型的表

 

10.内表读取小技巧

如果内表行数巨大,将内表定义成为哈希表,并且使用关键字进行读取可以提升效率

 

 

0 0
原创粉丝点击