sap 内表
内表的目的
在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 内表的更多相关文章
- SAP内表转XML文件
今天有个兄弟问如何实现以XML的方式输出内表的内容,这个问题我以前好像没有写过.倒不是不会写,而是写的方法太多了,有极其简单的,也有很复杂的,而且网上资料也很多. 找到以前写的一个程序,稍微修改了一下 ...
- SAP内表查询速度优化实例-OPEN SQL
一.FOR ALL ENTRIES IN 案例 今天碰到工单报工统计分析表查询速度特别慢 经查看源代码: SELECT afpo~dwerk afko~aufnr afpo~matnr AS plnb ...
- SAP内表类型及其数据读取效率评估
内表大概分3种: 1.标准表standard tables:如果不指定BINARY SEARCH附加选项,则默认为线性查找(linear search),既一条一条的查找. 2.排序表(sorted ...
- ABAP 内表与XML转换
1需求说明 在系统交互中需要将SAP内表转换为XML文件,发送给其他系统,并且将其他系统返回的XML文件转换为SAP内表. 2创建转换编辑器 事务代码:STRANS 选择简单转换 以图形方式编辑 右键 ...
- [SAP ABAP开发技术总结]内表操作
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- [SAP ABAP开发技术总结]反射,动态创建内表、结构、变量
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- [SAP ABAP开发技术总结]CLEAR、REFRESH、FREE内表清理区别
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- 【ABAP系列】SAP ABAP 取两个内表的交集 比较两个内表的不同
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 取两个内表的交 ...
- 七十一、SAP中内表的修改,改一行数据,或一行的某个字段
一.SAP中内表的修改,只能通过工作区来修改,代码如下 二.效果如下
随机推荐
- netty深入学习之一: 入门篇
netty深入学习之一: 入门篇 本文代码下载: http://download.csdn.net/detail/cheungmine/8497549 1)Netty是什么 Netty是Java NI ...
- 【Java编程】随机数的不重复选择
随机数的不重复选择就是从n个数中随机选取m(m<n)个数.在本文中,我们用Java来实现.因此我们先介绍Java的相关知识. 在Java中,Java.util.Set接口和Java.util.L ...
- /etc/fstab文件分析(第二版)
/etc/fstab文件分析 前面说新建的分区在系统重启之后就会失效,要想永久生效,需要将其写入/etc/fstab文件 一./etc/fstab文件格式:6个组成部分 物理分区名/卷标 挂载点 文件 ...
- Erlang cowboy http request生命周期
Erlang cowboy http request生命周期 翻译自: http://ninenines.eu/docs/en/cowboy/1.0/guide/http_req_life/ requ ...
- 如何在shell脚本中判断文件或者文件夹是否存在?
1:查找文件夹 如果文件夹存在,则打印一句存在,否则打印不存在 这里的话可以自由加一些指令. if [ test -d 文件夹名称 ] ; then echo "文件夹存在!" e ...
- 在linux下搭建STM32工程
转载自康神博客:http://blog.csdn.net/u013298300/article/details/50243935 在LINUX下开始一个STM32工程 在LINUX下开始一个STM32 ...
- Digogo ugdx文件的制作
The openplatform source code is in old IT FTP server at "vte/KCD/20150814/openplatform_wallace. ...
- c# 获取TFS结构 文件
#region 获取最新版本 /// <summary> /// 获取最新版本 /// </summary> /// <param name="server_u ...
- 《转》优化UITableViewCell高度计算的那些事
我是前言 这篇文章是我和我们团队最近对 UITableViewCell 利用 AutoLayout 自动高度计算和 UITableView 滑动优化的一个总结.我们也在维护一个开源的扩展,UITabl ...
- java中文拼音字母排序
package com.yputil.util; import java.text.CollationKey;import java.text.Collator;import java.util.Ar ...