ABAP-Internal-Table.ppt
《ABAP-Internal-Table.ppt》由会员分享,可在线阅读,更多相关《ABAP-Internal-Table.ppt(33页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、2结构结构、工作、工作区区、内内表表n结构(Structure)n工作区(Work area)n内表(Inner table)3结构结构n属于复杂类型,内容包含定义的数据字段n TYPES:BEGIN OF line, id TYPE i, name(30), age type i, END OF line. DATA member TYPE line.定义一个结构体存储员工信息内表 就是多个结构体的动态的排序,可以存储多个员工行数可以动态添加2022-7-24内内表表 工作工作区区n内表:用于在程序运行期间存储多行结构相同的数据n工作区:内表是按行 进行访问的 。必须使用 某个工作区 域作为
2、与表 格互相 传输数据的接口 。n工作区与内表的定义 data:wa_line type line, it_line type table of line.n表头行(with header line):隐式工作区n 读取数据行n 更新数据行n工作区 内表idnameageIdNameage5内内表表类类型型标标准表准表n标准表(standard table或者省略关键字):n系统为每一行数据生成一个逻辑索引;n填充标准表时,可附加在现有行之后或者是插入到指定位置;n程序对内表的寻址操作可以通过关键字或者索引进行;n对内表进行插入、删除等操作时,其数据行在内存中的位置不变,系统近重新排列各数据行
3、的索引值n不能定义唯一关键字,相同关键字的数据可重复出现n标准表的另一种定义方式: data: begin of itab occurs 0, end of itab.6内内表表类类型型排序表排序表n关键字SORTED TABLE,n也有一个逻辑索引n总是按照关键字升序排序后再进行存储n可按照关键字访问内表行n也可按照逻辑索引寻找内表行,与标准表相同n可以把排序表的关键字定义为唯一关键字或者普通关键字7内内表表类类型型哈希表哈希表n关键字:HASHED TABLEn无索引,只能通过关键字访问n系统用哈希算法管理表中的数据n寻址一条数据记录的时间与表的行数无关n必须定义且只能定义为唯一关键字n不
4、可能有关键字相同的两行数据出现8定定义内义内表表n语法格式:TYPES|DATA itab TYPE|LIKE tablekind OF LINETYPE|LINEOBJECT WITH key INITIAL SIZE n with header line.ntablekind: 内表类型nlinetype | lineobject:行结构nkey: 表关键字nInitial size n:内表分配的初始内存大小nwith header line: 定义表头行9内内表的重要表的重要概概念念逻辑逻辑索引索引n对于标准表和排序表,每一条数据记录都有一个逻辑索引n在对标准表和排序表进行插入、删除、
5、附加操作的时候,系统自动的对每一条数据记录赋一个逻辑索引,记录该数据记录在该内表中的逻辑位置(第X行)n对于标准表和排序表,可以通过逻辑索引操作数据行,关键字为INDEX n,表示读取第多少行数据记录10内内表的重要系表的重要系统变统变量量nSY-TABIX,当前内表的当前数据记录的逻辑索引值n内表嵌套循环时,如果需要使用到sy-tabix变量,请尽量把sy-tabix赋给一个变量再进行处理11表表关键关键字字nWITH key:指定内表关键字,如不指定,则系统使用默认(标准)关键字n可以用UNIQUE|NON-UNIQUE来决定内表中具有相同关键字的数据记录是否可以重复出现n如果未指定关键字
6、,则默认关键字为非数字和非内表的组件字段。比如内表中含有C,N,P三种类型的字段,则默认关键字为C,N类型的字段12初始初始内内存大小存大小n关键字: initial size n nN可以为正数或者0nN值的选择不影响程序执行的正确性,但可能影响执行效率:n如果N设置过小,重新分配内存空间要占用时间n如果N设置过大,则造成内存分配的浪费n如果n为0或者不指定,则程序为内表对象分配8KB的内存13工作工作区区(Work Area/Work Space)n程序不能直接进行内表的行操作,需要通过工作区来处理n工作区必须具有与内表行一致或者可以互相转换的结构,通常是与内表行类型相同的结构体n定义内表
7、对象的同时,需要定义一个与该内表行结构相同的工作区供程序使用n添加内表数据时,先给工作区赋值,然后把工作区内的数据添加、插入到内表n修改内表数据时,把已定位的内部行内容覆盖工作区的内容,修改工作区内容,再回写14工作工作区与内区与内表表数数据交据交换图换图例例内表工作区读取数据行更新数据行15隐隐式工作式工作区区表表头头行行(Header Line)n创建内表的时候隐式地定义一个同名工作区,这个同名工作区就叫表表头头行或行或标题标题行行n语法:DATA itab WITH HEADER LINEn创建内表的时候,通过该附加项决定内表是否带表头行 n创建带表头行的内表,则创建了内表和与内表行结构
8、一致的一致的结构结构体体;n对带表头行的内表,不需要指定工作区,系统隐式使用表表头头行作行作为为工作工作区区n表头行带来方便也增加了混淆:同一语句内表名称可能代表内表或者同名工作区,加代表内表,不带表示表头行2022-7-216行行访问访问方式方式n通过关键字访问(适合所有内表):n通过索引访问(不适合哈希表):n所有行操作成功,SY-SUBRC为0,否则为非0值标准表排序表哈希表索引访问允许允许不允许关键字访问允许允许允许相同值关键字行可重复可重复或不可重复不可重复推荐访问方式主要通过索引主要通过关键字只能通过关键字17行操作性能分析行操作性能分析n标准表:定位一行数据所需时间取决于表的行数
9、,随行线性增长n排序表:定位一行数据所需时间取决于表的行数,随行数对数级增长n哈希表:定位一行数据通过关键字进行,查找速度与行数无关Notes: 程序中使用何种内表,取决于预计需要容纳的数据行数及访问频率:行数很少,用标准表;数据量巨大,且不存在重复行,用哈希表;运行期内必须用某种排序形式出现时,用排序表。多数程序都使用标准表定定义内义内表的表的语语法法n1.DATA: BEGIN OF ITAB OCCURS 10 , NAME(10) TYEP C, SEX(2) TYPE C, AGE TYPE I, END OF ITAB.n2.DATA: ITAB1 TYPE ITAB.n3.DAT
10、A: ITAB1 LIKE ITAB OCCURS 10 n .n4.DATA: BEGIN OF ITAB1 OCCURS 10.n INCLUDE STRUCTURE ITAB.n DATA: END OF ITAB1.创创建和建和处处理理内内表表nABAP/4的内表如同其它语言的阵列结构,在操作上可以有复制、删除 和新增插入等功能。n首先使用TYPES创建内表数据类型,然后再用DATA创建对象 语法 TYPES OCCURS . 它定义了一个阵列,类型为,长度为. 例子 TYPES ITAB TYPE I OCCURS 10. DATA TAB1 TYPE ITAB. DATA TAB2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ABAP Internal Table
限制150内