创建和处理内表_第1页
创建和处理内表_第2页
创建和处理内表_第3页
创建和处理内表_第4页
创建和处理内表_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、8 8-1/ / 9191概览内容什么是内表 . 8 8-2内表的目的. 8 8-2内表的结构. 8 8-3标识表格行. 8 8-4访问内表. 8 8-6创建内表 . 8 8-8创建内表数据类型. 8 8-9创建内表数据对象. 8 8-11使用内表. 8 8-16填充内表. 8 8-17读取内表. 8 8-3 7更改和删除内表行. 8 8-5 5内表排序. 8 8-69创建次序表. 8 8-7 7循环处理. 8 8-7 9比较内表. 8 8-8 5初始化内表. 8 8-88? 8:创建和处理内表8 82/ / 9191本节讨论内 表。除字段 串外,内表 还构成 ABAP/4ABAP/4 提供的

2、另一 种结构化数据类型。本节主题描述a在处理内表 中大量的数 据时,花费 的计算机时 间对性 能来 讲特不关键。例如,要 获得最佳性 能,在“ABAP/4ABAP/4 开发工作台”初始屏幕 (或事务 SE30SE30)上选择“测 试 - -运行时刻分 析”,在“内 表”下选定 “提示& &技 巧. .”,就会出现有 关如何改进 性能的不同 任务示例。什么是内表下列主题提供内表简介:内表的目的在 ABAP/4ABAP/4 中,要紧使 用表格。表 格是 R/3R/3 系统中的关 键数据结 构。长期使用的数据存储在关系数据库表格中。关于如何读取 和处理数据库表格的详细信息,参见读取并

3、处理数据库表。8 83/ / 9191除了数据库 表格,还可 以创建仅在 程序运行时 间内存在的 内表ABAP/4ABAP/4 提供了针对 内表的不同 操作。例如,能够搜索、附加、插 入或删除行。内表中的行数并不固定。依照需求,系统可实时增加内表的大小。 例女口,假如想 将某个数据 库表格读入 内表,不必 事先明白数 据 库表格的 大小。该特 征项使得内 表使用起来 十分方便,同时还支 持动态编程。能够使用内表在数据库表格的子集上执行表格计算。例如,能够 将数 据库表格的 某个部分读 入内表(参 见 将数据读入内表)。然 后可 以从内表中 计算总和或 生成次序表。内表的另一 种用处是根 据程序

4、需要 重新组织数 据库表格的 内容。 例如,能够从一 个或多个大 客户表格特 定的数据中 将与创建电 话清单有关 的数据读入 内表中。然 后可在程序 运行期间直 接访问 该清 单,而不用 每次调用时 都执行耗时 的数据库查 询。除了在使用 来自数据库 表格的数据 时使用内表 夕卜,内表还 是 ABAP/ABAP/4 4中用于在程 序中实现许 多复杂数据 结构的重要 特征项(参 见结构化数据类型(页 3 3 - 6 6)。内表的结构在 ABAP/4ABAP/4 中,能够区 不内表数据 类型(定义 内表的结构。和内 表数 据对象(实 际的内表而 且能够用数 据进行填充)。内表数 据8 8-4/ /

5、 9191类型是数 据结构(可 用于将数据 对象讲明为 内表)的抽 象定义。 关 于数据类型 和数据对象 之间区不的 详细信息, 参见声明数据(页 3 3 - 1 1) 。数据类型内表是 ABAP/4ABAP/4 中两种结构 化数据类型 中的一种。 其它结构化 数 据类型是字段串(参见结构化数据类型(页 3 3 - 6 6) )o内表包括 任意数据 类型相同的 行。行的数 据类型能够 是差不多的或 结构化 的。该定义打开 了多种内表 结构,范围 从包含一个 字段的行到 包 含字段串将内表作为组件的行。能够用带 OCCURSOCCURS 参数的 TYPESTYPES 语句将数据 类型定义为 内表

6、(参见创建内表数 据类型(页 8 8-3)o定义数 据类型时不 占用内存。数据对象数据对象包 含定义为内 表的数据类 型,是实际使用的内表。数据 对象占用内存,能够对其行进行填充或读取。能够使用带 OCCURSOCCURS 参数的 DATADATA 语句,或使 用 TYPETYPE 或 LIKELIKE 参数 引用另一个内表将 数据对象创 建为内表(参见创建内表数 据对 象(页 8 8-4)o标识表格行 为了访问表 格的某一行 ,必须指定 可用于标识 该行的字段 或组合 字段 。在关系数 据模型(用 于在 R/3R/3 系统中存储 长期使用的 数 据)中, 用于该目的 的最小组合 称为 关键字

7、 。定义关键 字的字段 称 为 关键字段 。在关系数据 模型中,每 个表格至少 有一个关键 字(参见文 档ABAP/4 词典( 页 Error!Error! NotNot a a validvalid link.link.) )。专门唯 一关键字段 的该概念不 用于内表。8 85/ / 9191然而 ABAP/4ABAP/4 提供了下列 特征项以便 用户访问内 表行:内表索引索引是表格 行的序列号 ,不是表格 字段,但由 系统自动创 建和治 理。能够用 DELETEDELETE、 INSERTINSERT、 MODIFYMODIFY、 LOOPLOOP 和 READREAD 语句来使用 索 引

8、。在这 些语句中, 能够将索引 指定为文字 或变量。处理完内表 的特定行后 ,系统字段 SY-TABIXSY-TABIX 一般包含该 行的索 引。内表关键字有两种类型 的内表关键 字。自定义关键 字使用 READREAD 语句从内表 中读取行时 ,能够指定 自定义关键 字(参见用自定义关键字读取单行(页 8 8-16)o缺省关键字依照定义,内表的关键 字段是非数 字(类型 F F、I I 和 P P)和非内 表 的字段。这些关键字 段形成内表 的标准关键 字。要获得带嵌 套结构(包 含字段串作 为组件的表 格行)的内 表标准 关键 字,系统将 子结构分为 差不多字段层 次。a依照填充内表的方式

9、不 同,内表可 以包含带相 同标准 关键字的多行。用 COLLECTCOLLECT READREAD SORTSORT 和 SUMSUM 语句使用内 表的关键字 段。假8 86/ / 9191如标准关键字段是内表行的第一个组件,这有助于提高这些语 句的效率。 创建内表时 请记住这一 点。访问内表内表是按行进行访问的。必须使用某个工作区域作为与表格互相 传输数据的接口 。B B工作区域对 内表的行必 须是可转换 的(关于可 转换性 的详 细信息,参 见类型转换(页 6 6 - 3636)。8 8-7/ / 9191从已定址的表然 后能够在程 序中引用工 作区域的内 容。将数据 写入内表,必须首先

10、 在工作区域 (从中系统 能够将数据 传输给内表) 中输入数据。为了幸免不 一致,最好 是工作区域 与内表行有 相同的数据 类型。 创建与内表兼容的工作区域的一种安全步骤是在讲明内表和工 作区域时使 用相同的数 据类型。在该环境中,能够区分 ABAP/4ABAP/4 中两种类型 的内表的差 不:_ _带表头行的内表_ _不带表头行的内表假如创建带 表头行的内 表(参见创建内表(页 8 8-3),系统自 动创建与内 表行数据类 型相同的工 作区域。该 工作区域称 为表头 行或 表格工作区 域,对内表 的作用与由 TABLESTABLES 语句创建的 数据)。表格工作吏用的工作区勺表,能够忽 不带

11、表头行 的内表没有 能够隐式使 用的表格工 作区域。要 访问没 有表 头行的内表,必须在相 应的 ABAP/ABAP/4 4语句中显式 指定工作区 域。格行内容覆盖工作区域的内容。库表格 i”工作区域相 同(参见TABLES 语句(页 3 3 - 2020 区域和内表本身同名。在所有用于 访问内表的 ABAP/4ABAP/4 语句中,可 以指定要使 域(参见使用内表(页 8 8-6)。关于带 表头行的I略这一指定。如此,系 统隐式使用 表格工作区 域:8 88/ / 9191决定创建的内表是否带表头行时,必须考虑是喜爱隐式还是显式 用于内表访问的工作区域。a请记住,对 于带表头行 的内表,内 表本身和表 格工作 区域 同名。假如 在语句中使 用该名称, 系统将其解 释 为表格工 作区域的名 称,而不是 表格本身(关于将数 据 读入内存或 从内存中读 取数据的语 句,这一点 例 夕卜,参见 ABAP/4ABAP/4 内存中的数据簇)。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论