内表的目的

在ABAP/4中,主要使用表格。表格是R/3系统中的关键数据结构。长期使用的数据存储在关系数据库表格中。关于如何读取和处理数据库表格的详细信息,参见读取并处理数据库表。
除了数据库表格,还可以创建仅在程序运行时间内存在的内表。ABAP/4提供了针对内表的不同操作。例如,可以搜索、附加、插入或删除行。
内表中的行数并不固定。根据需求,系统可实时增加内表的大小。例如,如果想将某个数据库表格读入内表,不必事先知道数据库表格的大小。该特征项使得内表使用起来十分方便,同时还支持动态编程。
可以使用内表在数据库表格的子集上执行表格计算。例如,可以将数据库表格的某个部分读入内表(参见将数据读入内表)。然后可以从内表中计算总和或生成次序表。
内表的另一种用处是根据程序需要重新组织数据库表格的内容。例如,可以从一个或多个大客户表格特定的数据中将与创建电话清单有关的数据读入内表中。然后可在程序运行期间直接访问该清单,而不用每次调用时都执行耗时的数据库查询。
除了在使用来自数据库表格的数据时使用内表外,内表还是ABAP/4中用于在程序中实现许多复杂数据结构的重要特征项(参见结构化数据类型(页3-6))。

内表的结构

在ABAP/4中,可以区别内表数据类型(定义内表的结构)和内表数据对象(实际的内表而且可以用数据进行填充)。内表数据类型是数据结构(可用于将数据对象说明为内表)的抽象定义。关于数据类型和数据对象之间区别的详细信息,参见声明数据(页3-1)。
数据类型
内表是ABAP/4中两种结构化数据类型中的一种。其它结构化数据类型是字段串(参见结构化数据类型(页3-6))。内表包括任意数据类型相同的行。行的数据类型可以是基本的或结构化的。该定义打开了多种内表结构,范围从包含一个字段的行到包含字段串将内表作为组件的行。
可以用带OCCURS参数的TYPES语句将数据类型定义为内表(参见创建内表数据类型(页78))。定义数据类型时不占用内存。
数据对象
数据对象包含定义为内表的数据类型,是实际使用的内表。数据对象占用内存,可以对其行进行填充或读取。
可以使用带OCCURS参数的DATA语句,或使用TYPE或LIKE参数引用另一个内表将数据对象创建为内表(参见创建内表数据对象(页57))。

标识表格行

为了访问表格的某一行,必须指定可用于标识该行的字段或组合字段。在关系数据模型(用于在R/3系统中存储长期使用的数据)中,用于该目的的最小组合称为关键字。定义关键字的字段称为关键字段。
在关系数据模型中,每个表格至少有一个关键字(参见文档ABAP/4词典)。特殊唯一关键字段的该概念不用于内表。
但是ABAP/4提供了下列特征项以便用户访问内表行:
内表索引
索引是表格行的序列号,不是表格字段,但由系统自动创建和管理。
可以用DELETE、INSERT、MODIFY、LOOP和READ语句来使用索引。在这些语句中,可以将索引指定为文字或变量。
处理完内表的特定行后,系统字段SY-TABIX一般包含该行的索引。

内表关键字
有两种类型的内表关键字。
自定义关键字
使用READ语句从内表中读取行时,可以指定自定义关键字(参见用自定义关键字读取单行(页36))。
缺省关键字
根据定义,内表的关键字段是非数字(类型F、I和P)和非内表的字段。这些关键字段形成内表的标准关键字。
要获得带嵌套结构(包含字段串作为组件的表格行)的内表标准关键字,系统将子结构分为基本字段层次。

根据填充内表的方式不同,内表可以包含带相同标准关键字的多行。
用COLLECT、READ、SORT和SUM语句使用内表的关键字段。如果标准关键字段是内表行的第一个组件,这有助于提高这些语句的效率。创建内表时请记住这一点。

sap 内表的更多相关文章

  1. SAP内表转XML文件

    今天有个兄弟问如何实现以XML的方式输出内表的内容,这个问题我以前好像没有写过.倒不是不会写,而是写的方法太多了,有极其简单的,也有很复杂的,而且网上资料也很多. 找到以前写的一个程序,稍微修改了一下 ...

  2. SAP内表查询速度优化实例-OPEN SQL

    一.FOR ALL ENTRIES IN 案例 今天碰到工单报工统计分析表查询速度特别慢 经查看源代码: SELECT afpo~dwerk afko~aufnr afpo~matnr AS plnb ...

  3. SAP内表类型及其数据读取效率评估

    内表大概分3种: 1.标准表standard tables:如果不指定BINARY SEARCH附加选项,则默认为线性查找(linear search),既一条一条的查找. 2.排序表(sorted ...

  4. ABAP 内表与XML转换

    1需求说明 在系统交互中需要将SAP内表转换为XML文件,发送给其他系统,并且将其他系统返回的XML文件转换为SAP内表. 2创建转换编辑器 事务代码:STRANS 选择简单转换 以图形方式编辑 右键 ...

  5. [SAP ABAP开发技术总结]内表操作

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  6. [SAP ABAP开发技术总结]反射,动态创建内表、结构、变量

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  7. [SAP ABAP开发技术总结]CLEAR、REFRESH、FREE内表清理区别

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  8. 【ABAP系列】SAP ABAP 取两个内表的交集 比较两个内表的不同

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 取两个内表的交 ...

  9. 七十一、SAP中内表的修改,改一行数据,或一行的某个字段

    一.SAP中内表的修改,只能通过工作区来修改,代码如下 二.效果如下

随机推荐

  1. 为神马精确Sprite的碰撞形状不通过简单的放大Sprite的尺寸来解决?

    原因是SoftBodyDrawNode的绘制代码中已经没有完整的,一体化的(incorporate)缩放,旋转或者甚至是精灵的位置(scale,rotation,or even the sprite' ...

  2. android 开发Handler源码剖析

    Android的消息机制主要是Handler的运行机制,而讲Handler的机制,又需要和MessageQueue和Looper结合.MessageQueue中文意思是消息队列,虽说叫队列,但是其内部 ...

  3. Learning ROS for Robotics Programming Second Edition学习笔记(一) indigo v-rep

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  4. SharePoint 2013 入门教程 [不断更新~]

    以下文章是自己在学习SharePoint的过程中,不断积累和总结的博文,现在总结一个目录,分享给大家.这个博客也是自己从SharePoint入门,到一个SharePoint开发的成长记录,里面记录的都 ...

  5. 如何在VS2013中进行Boost单元测试

    对于如何在VS2013中进行Boost单元测试,这方面资料太少.自己也因此走了不少弯路.下文将会阐述一下如何在VS2013中进行Boost单元测试. 在开始Boost单元测试之前,我们需要先安装VS2 ...

  6. Windows2008修改密码策略简单介绍

    Windows2008修改密码策略简单介绍 Windows的密码策略,确实是挺繁琐的,刚接触SharePoint2010,装的windows2008 R2,就遇到了改密码策略的问题. 打开本地安全策略 ...

  7. 回顾一下shell脚本1

    首先: 1.编写一个hello.sh的程序 hello.sh vim hello.sh #!/bin/sh #作者:yangyx echo "hello shell"</sp ...

  8. java 远程调试方法

    http://wenku.baidu.com/link?url=5p3GZhPcfvM-VOzAFeCjbLeVv0OQrAGJh4HxirqImuK9VxPfmW243T_l5Plj6KdDZB1I ...

  9. Ribbon整合Eureka组件,以实现负载均衡

    1整体框架的说明 在本案例的框架里,我们将配置一个Eureka服务器,搭建三个提供相同服务的Eureka服务提供者,同时在Eureka服务调用者里引入Ribbon组件,这样,当有多个url向服务调用者 ...

  10. 无效类字符串:ProgID: Excel.Application

    网上发现的方案是改注册表,其实用不着那么麻烦,找2种excel文件:xlsx和xls,把默认打开方式都换成你机器上有的程序就行,比如WPS Office的WPS 表格