云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 很全abap入门知识

很全abap入门知识

  • 62 次阅读
  • 3 次下载
  • 2025/5/6 19:23:52

INSERT LINES OF itab1 [from n1 to n2] INTO TABLE itab2.

INTO itab2 [ INDEX n]

读取内表的一条将数据读到结构体中,如果系统独到行 sy-subrc = 0 . 然后读取到结构体中,Sy-tfill 存放总行数,Sy-tleng 行的长度,Transporting 指定特定列传输字段,传送部分字段TRANSPORTING NO Fields 不传值,作用,看内表中有没有这条数据Camparing有一个结构体和内表 C1 C2 C3 Lh 0019 17 Lh 0018 18

通过comparing 后的值,可以判断读取的值是否符合要求.现在结构体中需要比较的字段赋值,先判相应字段是否相等比较成sy-subrc = 0 Zmycompare_2009 用一个结构作为 查询条件,到内表查询符合条件的数据With key 可以用 table key 或 普通字段作为条件使用field symbol

通过一个内表定义一个结构体作为指针

Read table itab [index n / key ] assigning . Write: / -field_1.

直接修改 的值 会怎么样? Change 修改内表

Transporting 的 传输方向 通过 field symbol 直接修改 内表

重要: 不能直接指针对sorted 和 hash表进行操作

Delete

Delete table itab key Key: from wa ()

With table key k1 = f1….

不能用sort 对排序表进行排序对sorted表进行insert modify,使用不当可能会出错.

HASH表不能通过 index 进行操作 Header line

With head line 关键字定义 废弃用法 Occur + 整数, 10 , Occur 0 , 默认大小,

Occur 0 with head line 废弃用法了

重要: 在面向环境中 不能用带有 head line 的内表

Data: so_carr LIKE RANGE OF carrid. Loop 内表

Where 条件 从起始点二分查找

标准表 可以部分指定顺序 From 1 to 5

对于一个标准表来说, 加上二分查找 是不是 先排序 先把标准表 排序, 然后再二分 必须先手工排序,再进行二分查找

关于ABAP内表(about abap internal table)

44. 内表的类型及定义:

1) ANY TABLE:即任意表类型,此种定义方式只能在传递参数的时候定义。 例如:FORM XXX USING/CHANGING TYPE ANY TABLE .

ANY TABLE包括了两种类型:INDEX TABLE和HASHED TABLE 。 INDEX TABLE:包括了STANDARD TABLE和SORTED TABLE A. STANDARD TABLE:其实就是一个线性表,通过key访问内表是线性查找的,

也就是说,随着表中记录的增加,对表的操作的时间开销也相应的增加。

定义方法:TYPES/DATA: LIKE/TYPE STANDARD TABLE OF .

B. SORTED TABLE:顾名思义,表中的记录是按照一定的顺序排列的。访问表的

主要方式是表中定义的key,如果key不唯一,则选择index最小的那个。也可以通过index来访问排序表,如果你想通过index插入一条记录,系统会自动检查你插入的位置是否正确。所以,如果插入的时间比插入到标准表的时间会长。因此,尽量选择key来对排序表进行操作。

定义方法:TYPES/DATA: LIKE/TYPE SORTED TABLE OF .

45. HASHED TABLE:对哈希表只能用你定义的key进行操作,而不能使用index进

行操作。因此,定义哈希表必须定义uniquekey 。注意:所有关于使用index操作表的语句都不能用于操作哈希表。例如:sort,loop等。

定义方法:TYPES/DATA: LIKE/TYPE HASHED TABLE OF .

46. 内表的操作:

1) 创建:

A. 定义一个结构,然后type/like这个结构

例如:

TYPES: BEGIN OF , ...i> ..., ...

END OF .

DATA TYPE STANDARD TABLE OF WITH NON-UNIQUE

DEFAULT KEY INITIAL SIZE WITH HEADER LINE.

B. type/like系统表或者数据库表或者结构

DATA TYPE STANDARD TABLE OF <系统表名> INITIAL SIZE

WITH HEADER LINE.

2) 添加数据:

A. APPEND:直接向表中添加数据

1. APPEND [wa TO|INITIAL LINE TO] itab[ASSIGNING |REFERENCE INTO dref].

2. APPEND LINES OF itab1 [FROM idx1] [TO idx2] TO itab2. 3. APPEND [wa TO] itab SORTED BY f [ASSIGNING B. 向表中插入数据:

1. INSERT [wa INTO|INITIAL LINE INTO] itab [INDEX idx] [ASSIGNING |REFERENCE INTO dref].

2. INSERT [wa INTO|INITIAL LINE INTO] TABLE itab [ASSIGNING |REFERENCE INTO dref].

3. INSERT LINES OF itab1 [FROM idx1] [TO idx2] INTO itab2 [INDEX idx3].

4. INSERT LINES OF itab1 [FROM idx1] [TO idx2] INTO TABLE itab2. C. 相同字段求和向表里添加:

Basic form COLLECT [wa INTO] itab.

Extras:

1. ... ASSIGNING

2. ... REFERENCE INTO dref 3. ... SORTED BY f

3) 删除数据:

1. DELETE itab.

2. DELETE TABLE itab WITH TABLE KEY k1 = v1 ... kn = vn. 3. DELETE TABLE itab [FROM wa]. 4. DELETE itab INDEX idx.

5. DELETE itab FROM idx1 TO idx2. 6. DELETE itab WHERE logexp.

7. DELETE ADJACENT DUPLICATES FROM itab.

4) 修改数据:

1. MODIFY itab [FROM wa] [INDEX idx] [ASSIGNING |REFERENCE INTO dref] [TRANSPORTING f1 ... fn]. 2. MODIFY TABLE itab [FROM wa]

[ASSIGNING |REFERENCE INTO dref] [TRANSPORTING f1 ... fn]. 3. MODIFY itab [FROM wa] TRANSPORTING f1 ... fn WHERE cond.

ABAP 内表(internal table) 标题行(header line) 工作区(work area) 简介 OCCURS 0

先是用TYPES关键字定义一个行(row)的类型. 如下:

TYPES: BEGIN OF line, field1 TYPE i, field2 TYPE i, END OF line.

这里的line,就相当于一个自定义的类型,表示一行(row)的字段(field).这里一行有两个字段field1和field2.

然后是声明一个work area: DATA wa TYPE line.

我用C++(还是对cpp最有好感^^)的概念理解就是,line是一个class,而wa是一个object.

接着是声明一个每一行的类型是line的internal table: DATA itab TYPE line OCCURS 0.

我在暂时把OCCURS作为了区别工作区和内表的标志.OCCURS应该有更深层次的意义,但我目前只能领悟至此...

当我们用以上这个方法来声明一个iternal table时,可以选择是否有无header line.

上面这句就是没有header line的.改成如下就有了:

DATA itab TYPE line OCCURS 0 WITH HEADER LINE.

有无header line的区别就是,header line可以当作一个work area来使用(参照我之前的一个日志).

有一下两种方式操作itab: a) wa-field1 = 1.

wa-field2 = 2.

APPEND wa TO itab. b) itab-field1 = 1.

itab-field2 = 2. APPEND itab. 这里wa就是上面那个已经定义的work area.

有header line的时候,这两种都可以.无header line的时候,只能用第1种. 第2种里,itab的意义是一个header line,而不是内表.因为\line OCCURS 0 WITH HEADER LINE.\这样的声明,已经隐式声明了一个与内表同

搜索更多关于: 很全abap入门知识 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

INSERT LINES OF itab1 [from n1 to n2] INTO TABLE itab2. INTO itab2 [ INDEX n] 读取内表的一条将数据读到结构体中,如果系统独到行 sy-subrc = 0 . 然后读取到结构体中,Sy-tfill 存放总行数,Sy-tleng 行的长度,Transporting 指定特定列传输字段,传送部分字段TRANSPORTING NO Fields 不传值,作用,看内表中有没有这条数据Camparing有一个结构体和内表 C1 C2 C3 Lh 0019 17 Lh 0018 18 通过comparing 后的值,可以判断读取的值是否符合要求.现在结构体中需要比较的字段赋值,先判相应字段是否相等比较成sy-subrc = 0 Zmycompare_2009

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com