什么是内表:内表是内存中建立的一个临时表,你可以在程序运行时对表中的数据进行,插入,修改,删除等操作,程序跑完了,就会被释放。

定义类型:通过types开头定义

TYPES: BEGIN OF line,

field1 TYPE i,

field2 TYPE i,

END OF line.

参考类型定义结构、工作区域、变量:定义结构通过data开头定义

DATA: WA _ITAB TYPE(LIKE) line. “ 声明一个内表工作区

DATA: ITAB TYPE(LIKE) STANDARD TABLE OF line .

参考工作区域定义内表,

Data itab like table of  wa_itab

参考内表定义工作区,

Data wa_itab like lines of itab

填充内表行

append <wa> to <itab> “ 不带表头行的填充

append <itab> “ 带隐式表头行的填充

插入内表行

insert <wa> into <itab> [INDEX idx] “

insert <itab> [INDEX idx ] “ 隐式表头行插入内表

-- 如果没有指定INDEX ,则默认插入到内表最后一行

读取内表行

read <itab> into <wa> [INDEX idx]

read <itab> [INDEX IDX]

修改内表行

modify <itab> from <wa> [INDEX idx]

modify <itab> [INDEX idx]

-- read itab index 3 .

-- itab-XX = ‘xxx’ .

-- modify itab index 4 .

删除内表行

delete <itab> [INDEX idx] .

-- 带表头行和不带表头行语法一致 。

内表循环

Loop at <itab> into <wa> .

<statement block>

endloop. “ 带表头行的内表循环操作

Loop at <itab> .

<statement block>

endloop. “ 不带表头行内表操作

-- 循环体的MODIFY,DELETE等语句不必指定INDEX项,系统默认处理当前行 .

-- 如果不需要读取所有的内表行,可以使用WHERE选项进行限制

-- LOOP AT <itab> [WHERE <conditions>]

清空内表

clear <itab> . “清空不带表头行内表

clear<itab>[] . “清空带表头行内表

内表排序

SORT <itab> [ASCENDING | DESCENDING] [AS TEXT]

--ASCENDING和DESCENDING指定升序还是降序排列,如果不指定,缺省排序方式是升序

删除重复行

DELETE ADJACENT(紧接着的;相邻) DUPLICATES(副本) FROM <itab> [COMPARING <comp>].

-- 删除重复行之前须对内表进行排序

将内表中部分或全部的数据行整体插入另一内表

INSERT LINES OF <itab1> [FROM n1] [TO n2] INTO [TABLE] <itab2> [INDEX <idx>].

-- insert lines of itab1 from 1 to 100 into itab2 . “ 将内表1前100行数据附加到内表2 .

-- 两个内表必须具有相同的或可转换的行结构

将内表中部分或全部的数据行整体填充到另一内表

APPEND LINES OF <itab1> [FROM n1] [TO n2] TO <itab2>.

按照条件或者索引删除一组选定行

DELETE <itab> [FROM n1] [TO n2] [WHERE <condition>].

-- delete itab1 from 1 to 100 where age >30 . "删除内表前100行中年龄大于30 的记录 。

整体复制内表,目标内表原有内容被覆盖

MOVE <itab1> TO <itab2> 不带表头行的内表之间进行复制

MOVE <itab1>[] TO <itab2>[]. 带表头行的内表之间进行复制

MOVE <itab1> TO <itab2>[]. 不带表头行的内表复制到带表头行的内表

MOVE-CORRESPONDING <itab1> TO <itab2> 复制内表1中与内表2具有相同结构的字段进行复制,同样适用于工作区

EX.

  1. 构造一个内表BOOK,字段有BOOKNO,BOOKNAME,ZUOYE,PRICE.
  2. 输入几组数据:

BOOKNO

BOOKNAME

ZUOYE

PRICE

1

TEST

MARK

55

2

ERRO

WRITE

43

3

PRO

BACKER

67

4

中国历史

QINCHAO

88

    3、插入一个新的数据在第三行,每一列数据分别是 ‘5’,’insert’,’insert’,’36’

    4、删除第4行数据

    5、把数据复制给一个新的内表BOOK1

    6、按照价格排序BOOK

    7、修改第2条数据,把PRICE改为15.

DATA:BEGIN OF BOOK OCCURS  ,
BOOKNO() TYPE C,
BOOKNAME() TYPE C,
ZUOYE() TYPE C,
PRICE() TYPE N,
END OF BOOK. BOOK-BOOKNO = ''.
BOOK-BOOKNAME = 'TEST'.
BOOK-ZUOYE = 'MARK'.
BOOK-PRICE = ''.
APPEND BOOK.
BOOK-BOOKNO = ''.
BOOK-BOOKNAME = 'ERROR'.
BOOK-ZUOYE = 'WRITE'.
BOOK-PRICE = ''.
APPEND BOOK.
BOOK-BOOKNO = ''.
BOOK-BOOKNAME = 'PRO'.
BOOK-ZUOYE = 'BAKER'.
BOOK-PRICE = ''.
APPEND BOOK.
BOOK-BOOKNO = ''.
BOOK-BOOKNAME = '中国历史'.
BOOK-ZUOYE = 'QINCHAO'.
BOOK-PRICE = ''.
APPEND BOOK.
LOOP AT BOOK.
WRITE:/ BOOK.
ENDLOOP.
WRITE: SY-ULINE.
BOOK-BOOKNO = ''.
BOOK-BOOKNAME = 'insert'.
BOOK-ZUOYE = 'insert'.
BOOK-PRICE = ''.
INSERT BOOK INDEX .
LOOP AT BOOK.
WRITE:/ BOOK.
ENDLOOP.
WRITE:SY-ULINE.
DELETE BOOK INDEX .
LOOP AT BOOK.
WRITE:/ BOOK.
ENDLOOP.
WRITE:SY-ULINE.
DATA:BOOK1 LIKE TABLE OF BOOK WITH HEADER LINE.
MOVE BOOK[] TO BOOK1[].
LOOP AT BOOK1.
WRITE:/ BOOK1.
ENDLOOP.
WRITE:SY-ULINE.
clear book1.
book1-PRICE = ''.
modify BOOK1 INDEX TRANSPORTING price.
LOOP AT BOOK1.
WRITE:/ BOOK1.
ENDLOOP.
WRITE:sy-uline.
sort book1 by price .
LOOP AT BOOK1.
WRITE:/ BOOK1.
ENDLOOP.

Abap内表的更多相关文章

  1. Abap 内表的语法

    ABAP中的内表相当于其他程序设计语言中的二维数组,存储多行结构相同的数据 不同于二维数组,内表在创建后,列结构与列数是固定不变的,而行数是动态增长的  内表支持循环对每行数据进行操作,也支持整体操作 ...

  2. ABAP内表数据和JSON格式互转

    本程序演示ABAP内表数据如何转为JSON格式,以及JSON数据如何放入内表. 注:json字符串格式如:jsonstr = '[ {flag: "0",message: &quo ...

  3. ABAP 内表 详解

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

  4. ABAP 内表数据 与 Json串 相互转换

    内表: A B C IMINGZHA  HAIMINGZ AIMINGZH 1 2 3 4 5 6 Json串:  [{a: "IMINGZHA", b: "HAIMIN ...

  5. ABAP 内表访问表达式的性能

    内表访问表达式是ABAP 7.4中引入的重要特性,可以使语句变得更加简洁.美观.那么它的读写性能怎么样呢?我进行了一点点测试. 读取 测试代码,使用三种方式读取同一内表,分别是read table关键 ...

  6. ABAP 内表(internal table) 标题行(header line) 工作区(work area) 简介 - [SAP]

    刚开始学ABAP的时候,学到iternal table时,感觉一阵混乱.搞不清楚什么是work area,什么是header line,以及occurs是干什么用的.今天终于差不多搞明白了(我还是太弱 ...

  7. ABAP 内表的行列转换-发货通知单-打印到Excel里-NEW-(以运单号为单位显示ALV然后保存输出)

    *********************************************************************** * Title           : ZSDF003  ...

  8. ABAP 内表的行列转换-发货通知单-打印到Excel里-NEW

    *********************************************************************** * Title           : ZSDF002  ...

  9. ABAP 内表的行列转换-发货通知单-打印到Excel里

    需要传入数据到Excel里的模板如上图所示 ********************** *           设计主要逻辑与原理说明                                 ...

  10. ABAP 内表的行列转换-发货通知单2

    *&---------------------------------------------------------------------* *& Report  Z_TEST_C ...

随机推荐

  1. WPF属性绑定实现双向变化

    WPF依赖项属性可以实现属性的绑定,成功绑定之后只要修改后台绑定的属性,即可UI同步自动更新绑定的值,无需手动刷新界面:同样,前台的值变化后,通过获取绑定的属性值也可获取UI变化后的值,实现双向变化的 ...

  2. go-客户信息关系系统

    客户信息关系系统 项目需求分析 1) 模拟实现基于文本界面的< 客户信息管理软件>. 2) 该软件能够实现对客户对象的插入.修改和删除(用切片实现),并能够打印客户明细表 项目的界面设计 ...

  3. python基础(2):python的安装、第一个python程序

    1. 第一个python程序 1.1 python的安装 自己百度,这是自学最基本的,安装一路确定即可,记得path下打钩. 1.2 python的编写 python程序有两种编写方式: 1.进入cm ...

  4. 转:用 Python 一键分析你的上网行为, 看是在认真工作还是摸鱼

    简介 想看看你最近一年都在干嘛?看看你平时上网是在摸鱼还是认真工作?想写年度汇报总结,但是苦于没有数据?现在,它来了. 这是一个能让你了解自己的浏览历史的Chrome浏览历史记录分析程序,当然了,他仅 ...

  5. 解决pip使用异常No module named 'pip'

    场景 在使用pip进行升级时 python install --upgrade named pip 时提示: No module named pip 注: 博客: https://blog.csdn. ...

  6. opencv::DNN介绍

    DNN模块介绍: Tiny-dnn模块 支持深度学习框架 - Caffe - TensorFlow - Torch/PyTorch DNN运用 图像分类 对象检测 实时对象检测 图像分割 预测 视频对 ...

  7. E203 itcm

    E203 itcm是64Kb,所以地址总线为16位,2^16=64Kb, 数据线宽度为64 bits(8 bytes),所以address width是16-3=13bit,ram depth 是2^ ...

  8. Android Activity 开发常用技巧整理

    1.设置 Activity 背景色为透明 在style.xml里面声明: <style name="TranslucentActivityStyle" parent=&quo ...

  9. 版本管理·玩转git(远程仓库配置和配置公钥免密登录)

    git系列的最后一部分内容,我们先来看看如何查看远程仓库. 输入 git remote -v 我们还可以删除远程库,输入 git remote remove origin 删除后再次查询,信息为空. ...

  10. ABP进阶教程3 - 优化编辑

    点这里进入ABP进阶教程目录 我们尝试在新增/编辑界面增加一个下拉框用来代替输入框编辑Status 添加实体 打开领域层(即JD.CRS.Core)的Entitys目录 //用以存放实体对象添加一个类 ...