ABAP中填充内表之附加行
来源:互联网 发布:apache cxf 编辑:程序博客网 时间:2024/04/30 09:12
要逐行填充 内表,可以 使用 APPEND、 COLLECT 或 INSERT 语句。
_ 要将内表 仅用于存储 数据,出于 性能方面的 考虑,建议 使用 APPEND。 用 APPEND 也可以创建 序列清单。
_ 要计算数 字字段之和 或要确保内 表中没有出 现重复条目 ,请使用 COLLECT 语句,它根 据标准关键 字处理行。
_ 要在内表 现有行之前 插入新行, 请使用 INSERT 语句。
要将内表内 容复制到另 一个内表中 ,请使用 APPEND、 INSERT 或 MOVE 语句的变式 。
_ 要将内表 行附加到另 一个内表中 ,请使用 APPEND 语句的变式 。
_ 要将内表 行插入另一 个内表中, 请使用 INSERT 语句的变式 。
_ 要将内表 条目内容复 制到另一个 内表中,并 且覆盖该目 标表格,请 使用 MOVE 语句。
关于如何使 用 SELECT 语句用数据 库表格中的 数据填充内 表的详细信 息,参见 将数据读入内表。
附加行
要将行附加 到内表中, 请使用 APPEND 语句,用法 如下:
语法
APPEND [<wa> TO|INITIAL LINE TO] <itab>.
该语句将新 行附加到内 表 <itab> 中。
通过使用 <wa> TO 选项,指定 要附加的源 区域 <wa>。 对于带表头 行的表格, 可以忽略 TO 选项。这样 ,表格工作 区域就成了 源区域。
可以使用 INITIAL LINE TO 选项替代 <wa> TO,将用 其类型的正 确值初始化 的行添加到 表格中。
APPEND 不考虑是否 存在标准关 键字相同的 行(参见标识表格行) 。这样,可 能会出现相 同条目。
系统字段 SY-TABIX 在每个 APPEND 语句之后包 含附加行的 索引。
DATA: BEGIN OF ITAB OCCURS 10,
COL1 TYPE C,
COL2 TYPE I,
END OF ITAB.
DO 3 TIMES.
APPEND INITIAL LINE TO ITAB.
ITAB-COL1 = SY-INDEX. ITAB-COL2 = SY-INDEX ** 2.
APPEND ITAB.
ENDDO.
LOOP AT ITAB.
WRITE: / ITAB-COL1, ITAB-COL2.
ENDLOOP.
本示例创建 带表头行和 两列的内表 ITAB。 表格用 DO 循环填充。 每次通过循 环时附加初 始化行,然 后用循环索 引填充表格 工作区域并 且附加循环 索引的平方 根。其输出 为:
0
1 1
0
2 4
0
3 9
DATA: BEGIN OF LINE1,
COL1(3) TYPE C,
COL2(2) TYPE N,
COL3 TYPE I,
END OF LINE1.
DATA TAB1 LIKE LINE1 OCCURS 10.
DATA: BEGIN OF LINE2,
FIELD1(1) TYPE C,
FIELD2 LIKE TAB1,
END OF LINE2.
DATA TAB2 LIKE LINE2 OCCURS 1.
LINE1-COL1 = 'abc'. LINE1-COL2 = '12'. LINE1-COL3 = 3.
APPEND LINE1 TO TAB1.
LINE1-COL1 = 'def'. LINE1-COL2 = '34'. LINE1-COL3 = 5.
APPEND LINE1 TO TAB1.
LINE2-FIELD1 = 'A'. LINE2-FIELD2 = TAB1.
APPEND LINE2 TO TAB2.
REFRESH TAB1.
LINE1-COL1 = 'ghi'. LINE1-COL2 = '56'. LINE1-COL3 = 7.
APPEND LINE1 TO TAB1.
LINE1-COL1 = 'jkl'. LINE1-COL2 = '78'. LINE1-COL3 = 9.
APPEND LINE1 TO TAB1.
LINE2-FIELD1 = 'B'. LINE2-FIELD2 = TAB1.
APPEND LINE2 TO TAB2.
LOOP AT TAB2 INTO LINE2.
WRITE: / LINE2-FIELD1.
LOOP AT LINE2-FIELD2 INTO LINE1.
WRITE: / LINE1-COL1, LINE1-COL2, LINE1-COL3.
ENDLOOP.
ENDLOOP.
其输出为:
A
abc 12 3
def 34 5
B
ghi 56 7
jkl 78 9
本示例创建 两个不带表 格工作区域 的内表(TAB1 和 TAB2) 。TAB2 有深层结构 ,因为 LINE2 的第二个组 件包含内表 TAB1 的结构。LINE1 被填充并附 加到 TAB1。 然后,将 LINE2 填充并附加 到 TAB2。 用 REFRESH 语句清除 TAB1 之后(参见 初始化内表 ),再重复 相同步骤。 请注意, TAB2 中的行数仅 在 OCCURS 参数中指定 为1。TAB2 的内容输出 。
下篇提示:要创建内表数据类型,请使用TYPES语句,用法如下: 语法 TYPES<t><type>OCCURS<n>. 该语句通过使用TYPES语句的OCCURS选项创建一个内表数据类型<t>。内表中行的数据类型在<type>中指定。要指定行的数据类型,可以使用TYPE或 ...- ABAP中填充内表之附加行
- abap中 search 内表
- ABAP学习笔记之三-内表
- ABAP中动态内表使用
- ABAP中动态内表的使用
- ABAP 删除内表中的重复行
- abap内表,标题行,工作区
- 关于ABAP内表
- ABAP-内表
- ABAP动态内表
- 【ABAP】内表类型
- ABAP内表操作
- ABAP内表操作
- ABAP动态内表
- abap内表
- 关于ABAP内表
- ABAP-动态内表
- ABAP 内表
- 手把手教你写专利申请书/如何申请专利
- Win32 Series - Using the Timer for a Clock
- 在Android中建立Android project没有R.java文件
- TextBox JS前台赋值触发Onchange事件,屏蔽键盘操作
- Struts2 web项目自写Filter无法过滤*.action地址
- ABAP中填充内表之附加行
- 国内公有云对比(2)- 性能篇
- HEVC帧内PU数的来源
- javascript中定时执行的方法setinterval()和settimeout()和clearinterval()
- 设计模式C++实现(1)——工厂模式
- ps 提示暂存满,不能导入文件
- CSDN博客搬家失败,垃圾搬家功能
- 标准C++中的string类的用法总结
- cocos2d-x绑定ccb文件