- 浏览: 786686 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (573)
- Java基础 (76)
- C++基础 (5)
- hibernate (5)
- struts (4)
- spring (1)
- webservice (7)
- AjaX基础 (0)
- JS脚本 (53)
- 正则表达式 (5)
- html脚本 (30)
- 数据库基础 (54)
- 工作相关 (49)
- 其他 (30)
- Linux (9)
- web服务器 (17)
- JSP (13)
- eclipse (6)
- 面试题相关 (20)
- XML (3)
- Apache common (2)
- 生活 (35)
- VMware (1)
- log4j (9)
- BeanUtils (2)
- 设计模式 (3)
- UML (1)
- UNIX (1)
- ibats (5)
- GT-Grid (17)
- ABAP学习 (17)
- ABAP (35)
- ABAP--ALV (11)
- ABAP--WEBDIMPRO (0)
- abap-sample (1)
- BEMS (2)
- flex (33)
- GIS技术 (3)
最新评论
一. Internal Table 的宣告
ABAP/4中的Internal Table是一种Data
Structure,类似于其它语言中的STRUTURE,它可以由几个不同类型的字段(field)组成,用来表示具有不同属性的某一事物,单独一笔数据表示某个事物,多笔数据表示具有相同属性的多个事物.例如:
为了存取或记录某班的同学资料,我们创建如下的internal table:
DATA: BEGIN OF STUDENT OCCURS 20,
STD_ID TYPE N,
NAME(10) TYPE C,
AGE TYPE I,
BIRTH TYPE D,
SCORE TYPE P DECIMALS 2,
END OF STUDENT.
此时我们已经创建了名叫STUDENT的internal
table,并且为它预先申请了能够存放20笔资料的Buffer(当然,如果存取资料不止20笔,程序执行时,会自动申请系统Buffer)
Internal table 的定义有以下几种格式:
格式一. DATA: BEGIN OF <internal table> OCCURS <n>,
<field 1> TYPE <type1>,
[<field 2> TYPE <type 2>,
<field 3> TYPE <type 3>,
… ]
END OF <internal table>.
格式二. TYPES: BEGIN OF <work area>,
<field 1> TYPE <type1>,
[<field 2> TYPE <type 2>,
<field 3> TYPE <type 3>,
… ]
END OF <work area>.
TYPES <internal table> TYPE <work area> OCCURS <n>.
格式三. DATA: BEGIN OF <work area>.
INCLUDE STRUCTURE <table name>.
DATA: END OF <work area>.
DATA: <internal table> LIKE <work area> OCCURS <n>.
二. APPEND LINE
格式: APPEND [<work area> TO ] <internal table>.
举例一. (使用work area)
DATA: BEGIN OF LINE,
COL1 TYPE I,
COL2 TYPE I,
END OF LINE.
DATA ITAB LIKE LINE OCCURS 10.
DO 2 TIMES.
LINE-COL1 = SY-INDEX.
LINE-COL2 = SY-INDEX ** 2.
APPEND LINE TO ITAB.
ENDDO.
LOOP AT ITAB INTO LINE.
WRITE: / LINE-COL1, LINE-COL2.
ENDLOOP.
执行结果为:
1 1
2 4
举例二. (不使用work area)
DATA: BEGIN OF ITAB OCCURS 10,
COL1 TYPE I,
COL2 TYPE I,
END OF ITAB.
DO 2 TIMES.
ITAB-COL1 = SY-INDEX.
ITAB-COL2 = SY-INDEX ** 2.
APPEND ITAB.
ENDDO.
LOOP AT ITAB.
WRITE: / ITAB-COL1, ITAB-COL2.
ENDLOOP.
执行结果与举例一相同.
举例三. (加入另一个Internal table的元素)
格式: APPEND LINES OF <itab1> [FROM <n1> ] [TO <n2>] TO
<itab2>.
将<itab1>的元素加入至<itab2>中,可选取自<n1>至<n2>的范围.
APPEND LINES OF ITAB TO JTAB.
三. COLLECT LINE
COLLECT 指令也是将元素加入Internal table中,与APPEND 的区别是:
COLLECT指令在非数值字段相同的情况下,将数值字段汇总.
格式: COLLECT [<work area> INTO ] <itab>
DATA: BEGIN OF ITAB OCCURS 3,
COL1(3) TYPE C,
COL2 TYPE I,
END OF ITAB.
ITAB-COL1 = ‘ABC’. ITAB-COL2 = 10.
COLLECT ITAB.
ITAB-COL1 = ‘XYZ’. ITAB-COL2 = 20.
COLLECT ITAB.
ITAB-COL1 = ‘ABC’. ITAB-COL2 = 80.
COLLECT ITAB.
此时, internal table中放的是2笔数据, 分别为:
ITAB-COL1 ITAB-COL2
‘ABC’ 90
‘XYZ’ 20
四. INSERT LINE
将元素插入在指定的internal table位置之前.
格式: INSERT [<wa> INTO] [INITIAL LINE INTO ] <itab> [INDEX
<idx>]
或者: INSERT LINES OF <itab1> [FROM <n1> TO <n2>] INTO <itab2>
INDEX <idx>
其中: <wa>即work area,工作区中的元素.
[INITIAL LINE INTO] :插入一笔初始化的记录.
<itab>: internal table
[INDEX <idx>]: internal table 的记录号.(新加入的元素放在此记录前面)
五. 读取internal table
格式一:
LOOP AT <itab> [INTO <wa>][FROM <n1> TO <n2>][WHERE
<conditions>]
<statement>
ENDLOOP.
格式二:
READ TABLE <itab> [INTO <wa>] [INDEX <idx> / WITH KEY
<conditions>]
举例. (格式二)
DATA: BEGIN OF ITAB OCCURS 10,
COL1 TYPE I,
COL2 TYPE I,
END OF ITAB.
DO 10 TIMES.
ITAB-COL1 = SY-INDEX.
ITAB-COL2 = SY-INDEX * 2.
APPEND ITAB.
ENDDO.
READ TABLE ITAB INDEX 3.
(或者: READ TABLE ITAB WITH KEY COL1 = 3.)
WRITE: / ‘ITAB-COL1 = ‘, ITAB-COL1, ‘ITAB-COL2 = ‘, ITAB-COL2.
执行结果同样是:
ITAB-COL1 = 3
ITAB-COL2 = 6.
六. 修改internal table 中的值
格式: MODIFY <itab> [FROM <wa>][INDEX <idx>][TRANSPORTING
<f1><f2>…][WHERE <conditions>]
举例一. READ TABLE ITAB INDEX 3.
LINE-COL1 = 29.
MODIFY ITAB FROM LINE TRANSPORTING COL1.
将第三笔记录的COL1字段的值修改为29.
举例二. T_SALARY – salary = 50.
MODIFY T_SALARY TRANSPORTING salary WHERE birthday =
‘1999/12/06’.
七. DELETE internal table中的字段
格式: DELETE <itab> INDEX <idx>.
或: DELETE <itab>[FROM <n1> TO <n2>] [WHERE <conditions>]
八. Internal table 排序
SORT <itab> [<order way>][BY <f1><f2>…]
其中:<order way> 有DESCENDING 和ASCENDING, Default 为ASCENDING.
<f1>: 为指定排序的字段.
九. 加总
SUM.
总和计算存放与work area中,但只能在LOOP 中使用.
例: LOOP AT ITAB INTO LINE.
SUM.
ENDLOOP.
WRITE: / LINE-COL1, LINE-COL2.
十. 初始化internal table
REFRESH <itab>. 清空<itab>中的值.
CLEAR <itab>. 清空<itab>的Header Line.
FREE <itab>. 释放记忆体空间.
发表评论
-
ABAP日期函数
2010-04-09 13:18 1983计算两个日期间的工作天数,就是剔除了双休日后的天数.( 待考 ... -
ABAP 常用函数
2010-04-09 10:55 1411函数名 描述 SD_VBAP_READ_ ... -
ABAP常用系统变量
2010-04-09 10:52 10611.SY-PAGNO当前页号 2.SY-DATUM当前时间 ... -
ABAP字符串操作
2010-04-09 09:56 886ABAP字符串操作 ABAP對字串的操作方法與其他語言的操作有 ... -
SAP中常用且重要的数据库表
2010-04-08 21:57 1458Materials MARA - Material Mast ... -
如何跨过自学SAP的三道坎
2010-04-08 12:24 1390新手宝典 打算进入 ... -
sy-repid 和 sy-cprog的区别
2010-04-08 09:41 12991. sy-repid is the name of the ... -
ALV
2010-04-08 08:46 945REPORT z_alv_subtotal. *&-- ... -
ALV
2010-04-04 21:40 12221. 使用实例,见附件 2. help参考文档,内容也不多, ... -
LIST交互列表
2010-04-01 11:16 9271.Title names can be up to 20 c ... -
TYPE-POOLS
2010-03-28 10:11 1372我们在定义Tables的时候,一般会加上TYPE-POOLS ... -
怎么培养SAP内部顾问
2010-03-18 16:23 1178怎么培养SAP内 ... -
ABAP培训进入SAP第一步
2010-03-18 16:21 1633SAP在中国拥有众多的合 ... -
SAP培训及ABAP学习入门必读
2010-03-18 16:20 18081. SAP ABAP开发是做什么? SAP 是全球最大的E ... -
SAP职业生涯中12个最致命想法
2010-03-18 16:17 11701)总觉得自己不够好 这种人虽然聪明、有历练,但是一旦 ... -
关于SAP的用户出口 SAP的用户功能增强
2010-03-18 11:21 5122关于SAP的用户出口 SAP的 ... -
ABAP的面向对象-class的定义
2010-02-25 20:48 1124*类的定义与类的实现是分开的 class myClass de ... -
ABAP语言常用的系统字段及函数
2010-02-25 20:45 1188常用的系统变量如下: 1. SY-PAGNO当前页号 2. ... -
ABAP关于SCREEN的一些常用语句
2010-02-25 20:43 2591(1).SCREEN 设计 TABLES: SSCRFIEL ... -
ABAPer 常用Tcode
2010-02-23 22:38 1523注意下面两点: 1使用Tcode S001后显示SAP ea ...
相关推荐
本文将详细介绍ISO9001-2015内审检查表的相关知识点,从标题、描述、标签和部分内容进行解析。 首先,从标题“ISO9001-2015内审检查表(过程方法)”可以看出,本文关注的是ISO9001-2015标准中的内审检查表,特别是...
内六角螺栓是一种常见的紧固件,广泛应用于各种...总之,内六角螺栓的尺寸表是工程设计和生产过程中的重要依据,它涉及到螺栓的尺寸、性能和适用范围,确保了螺栓与其他部件的正确配合,从而保证设备的可靠性和安全性。
在IT行业中,苹果内购(IAP, In-App Purchase)是一种常见的应用内销售机制,允许用户在应用内直接购买虚拟商品或服务。苹果公司为其应用商店...同时,开发者在使用这个价格表时也需要遵循苹果的相关政策和指导原则。
ISO 9001-2015 内部审核检查表知识点 ISO 9001-2015 标准是国际标准化组织(ISO)发布的一项质量管理体系标准,旨在帮助组织建立和实施有效的质量管理体系,以提高产品和服务的质量,增强顾客满意,并促进组织的可...
ISO 13485 内审检查表.pdf ISO 13485 是一种国际标准,用于医疗器械行业的质量管理体系。该标准规定了医疗器械制造商和供应商应遵守的质量管理要求,以确保医疗器械的安全性、有效性和可靠性。 根据 ISO 13485 的...
比较全的SAP内表收集,中英文对照。对ABAP开发者是一个很好的工具。
内校记录表.doc 内校记录表是质量管理的重要工具,用于记录和追踪设备的校准信息。下面是关于内校记录表的详细知识点: 标题解释 “内校记录表.doc”是指设备校准记录表的文档名称,用于记录设备的校准信息。 ...
在二年级数学上册的教学中,6表内乘法和表内除法是重要的基础知识,对于学生的数学思维发展起着至关重要的作用。6.8练习十三作为教学的一部分,旨在通过系统的练习和反思,帮助学生巩固9的乘法口诀,并能熟练应用于...
备注与说明部分则为卷内备考表增加了灵活性,记录了卷宗中未涵盖的其他信息,比如特殊处理要求、变动历史或相关背景等。这些额外信息有助于更全面地理解档案内容,为今后的查询和使用提供了上下文。 在IT行业,卷内...
"二合一"的内审检查表模板将这两个认证体系的评审要求结合在一起,帮助检验检测机构在内部审核过程中全面满足两个认证的要求。 内审检查表的核心内容主要涵盖以下几个方面: 1. **组织的法律地位**:机构需具备...
本文件"ISO9001-2015生产部内审检查表.pdf"很可能是一份用于审核生产部门是否符合ISO 9001:2015标准要求的检查表。它强调了在生产部内进行自我检查和自我评估的重要性,以确保生产过程的合规性和持续改进。 在ISO...
内审计划表是企业质量管理体系运行中的重要工具,主要用于确保企业的各项活动符合GB/T9001-2008标准和其他相关法律法规的要求。通过内部审核,企业可以评估自身质量管理体系的有效性,发现并改进存在的问题,为申请...
然而,根据提供的标题“标准职业健康安全内审检查表.pdf”,我们可以推测文档可能与职业健康安全管理体系审核有关。以下是基于此推测的相关知识点: 1. 职业健康安全管理体系(OHSMS)的基本概念 职业健康安全管理...
3. 遵循法规与最佳实践:检查表通常基于行业标准、法律法规或内部政策,确保组织遵循相关规定。 4. 促进沟通:通过记录和评估,检查表可作为审计员与受审部门之间的沟通桥梁,提高审计透明度。 二、内审检查表的...
【CMA实验室内审检查表】是对检验检测机构进行内部质量控制的重要工具,旨在确保实验室按照相关标准和法规运行,保证检验检测数据的准确性和公正性。以下将详细阐述涉及的几个关键知识点: 1. **法律地位**: - ...
在给定的文件中,我们看到一个具体的内审检查表实例,涉及了多个ISO标准条款,主要包括ISO 9001的相关内容。以下是详细解释: 1. **标准条款4.1总要求**:审核组织是否按照ISO标准建立了、实施了、保持了和改进了...
内审检查表的目的是检查组织是否按照ISO22000:2018标准执行了上述要求,包括文件化信息的完整性、员工对食品安全方针的理解、管理评审的频率和深度,以及风险和机遇的管理。通过这种全面的审核,可以确保组织的食品...
内部审核检查表是评估组织是否遵循ISO20000-2018标准的关键工具,它通过检查各个关键领域的符合性来确保ISMS的有效性。 在描述中提到的审核涉及了多个条款,以下是对这些条款的详细解释: 1. **4.1 和 4.2 总要求*...
质量、环境、职业健康安全管理体系内审检查表是企业内部评估其管理体系运行有效性的关键工具。这份检查表涉及了质量、环境以及职业健康安全多个维度,确保企业的各项活动符合相关标准,如ISO 9001(质量管理)、ISO ...