今天学习一下内表的表达式在ABAP 7.4之后的语法:

SELECT * FROM mara INTO TABLE @DATA(gt_mara)
UP TO 10 ROWS.
DATA gt_mara_sort TYPE SORTED TABLE OF mara WITH UNIQUE KEY primary_key COMPONENTS matnr. "旧语法
DATA LV_MATKL TYPE MARA-MATKL.
READ TABLE GT_MARA INDEX INTO DATA(LS_MARA).
READ TABLE gt_mara_sort INTO DATA(ls_mara_sort1) INDEX 1 USING KEY primary_key.
READ TABLE gt_mara_sort INTO DATA(ls_mara_sort2) WITH KEY matnr = 'AT001'.
IF SY-SUBRC EQ 0.
  LV_MATKL = LS_MARA_SORT2-MATKL.
ENDIF.
"新语法
DATA(LS_MARA_NEW) = GT_MARA[ ].
DATA(ls_mara_sort1_new) = gt_mara_sort1[ KEY primary_key INDEX 1 ].
"若是gt_mara_sort已经按照matnr排序,则按照二分法搜索
DATA(ls_mara_sort2_new) = gt_mara_sort2[ matnr = 'AT001' ]. DATA(LV_MATKL_NEW) = GT_MARA_SORT2[ MATNR = 'AT001' ]-MATKL.

"检查是否存在某个数据
"旧语法
READ TABLE gt_mara TRANSPORTING NO FIELDS WITH KEY matnr = 'AT001'.
"新语法
CHECK line_exists( gt_mara[ matnr = 'AT001' ] ).
"得到数据在内表中的行

"旧语法
DATA lv_tabix TYPE sy-tabix.
READ TABLE gt_mara TRANSPORTING NO FIELDS WITH KEY matnr = 'AT001'.
IF sy-subrc EQ .
lv_tabix = sy-tabix.
ENDIF. "新语法
DATA(lv_tabix_new) = line_index( gt_mara[ matnr = 'AT001' ] ).

注意事项:若当GT_MARA 中不存在 matnr = 'AT001'的数据时, 直接执行

DATA(LS_MARA) = GT_MARA[ MATNR = 'AT001' ].
会使程序dump,所以一般写成如下的样子:

ASSIGN gt_mara[ matnr = 'AT001' ] TO FIELD-SYMBOL(<fs>).
IF sy-subrc EQ .
* ...
ENDIF.

- TAB 学习技术 热爱生活


2019.11.07【每天学点SAP小知识】Day2 - ABAP 7.40新语法 - 内表的更多相关文章

  1. 2019.11.18【每天学点SAP小知识】Day4 - ABAP 7.40新语法 FOR

    "今天学习一下FOR的语法,常用的2个语法. FOR wa|<fs> IN itab [INDEX INTO idx] [cond] "FOR i = … [THEN ...

  2. 2019.11.10【每天学点SAP小知识】Day3 - ABAP 7.40新语法 值转化和值赋值

    1.语法为 CONV dTYPE|#(...)\ # 代表任意类型 "7.40之前表达式 . DATA helper TYPE string. DATA xstr TYPE xstring. ...

  3. 2019.11.06 【每天学点SAP小知识】Day1 - ABAP 7.40新语法

    最近看同事使用ABAP新语法贼溜,省了好多的功夫,还在使用老语法的我眼红了. 所以就自己补一补7.40之后语法,能够让自己写代码更顺畅吧. 今天学习内联申明 inline 意思是:当编译器发现某段代码 ...

  4. 【ABAP系列】SAP ABAP7.40新语法简介第一篇

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP7.40新语法简 ...

  5. 【ABAP系列】SAP ABAP7.40新语法简介第二篇

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP7.40新语法简 ...

  6. 2019/11/12 CSP模拟赛&&考前小总结

    写在前面的总结 离联赛只有几天了,也马上就要回归文化课了. 有点舍不得,感觉自己的水平刚刚有点起色,却又要被抓回文化课教室了,真想在机房再赖几天啊. 像19/11/11那场的简单题,自己还是能敲出一些 ...

  7. 猫猫学iOS之小知识iOS启动动画_Launch Screen的运用

    猫猫分享,必须精品 原创文章.欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243? viewmode=contents 看下效果吧 比如新浪微博的 ...

  8. 每天学点Java小知识【1】

    一 Java标识符和关键字 1.标识符 作用:用来标识类名.变量名.方法名.类型名.数组名.文件名的有效字符序列. 组成规则:由字母.下划线.美元符号和数字组成,且第一个字符不能是数字字符.注意:标识 ...

  9. 猫猫学iOS之小知识之xcode6自己主动提示图片插件 KSImageNamed的安装

    猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 一:首先看效果 KSImageNamed是让XCode能预览项目 ...

随机推荐

  1. idea 下gradle创建springboot 项目

    InterlijIdea 开发环境下创建基于springBoot的项目. 环境 1.jdk1.5以上 2.interlijidea 15 以上 步骤 1.File –>new –>Proj ...

  2. PAT Basic 1044 火星数字 (20 分)

    火星人是以 进制计数的: 地球人的 被火星人称为 tret. 地球人数字 到 的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep, oct, nov ...

  3. 转 SQL连接查询语句(内、外、交叉和合并查询)

    转 http://blog.csdn.net/u010011371/article/details/50596535 1.内连接 (INNER JOIN) 内连接也称自然连接,它是根据两个或多个表中的 ...

  4. 打成jar包运行,依然可以找到指定路径的xml

    今天遇到一个问题,解决了就想着记下来 无效: getClass().getClassLoader().getResource("ehcache.xml").getPath() 有效 ...

  5. CSS如何水平垂直居中?

    CSS如何水平垂直居中? 1.CSS如何实现水平居中? margin: 0 auto 2.CSS如何实现水平垂直居中? 首先设置一个div元素,设置背景颜色以便看出变化.代码如下: <!DOCT ...

  6. k8sSecret资源

    Secret资源的功能类似于ConfigMap,但它专用于存放敏感数据,如密码.数字证书.私钥.令牌和ssh key等. 一.概述 Secret对象存储数据以键值方式存储数据,再pod资源中通过环境变 ...

  7. Mysql教程-自动备份数据库

       批处理命令: set"Ymd=%date:~,4%%date:~5,2%%date:~8,2%" set"hMs=%time:~,2%%time:~3,2%%tim ...

  8. jquery fadeIn()方法 语法

    jquery fadeIn()方法 语法 作用:fadeIn() 方法使用淡入效果来显示被选元素,假如该元素是隐藏的.大理石平台检定规程 语法:$(selector).fadeIn(speed,cal ...

  9. MessagePack Jackson 数据大小

    我们在使用 MessagePack 对 List 对象数据进行序列化的时候,发现序列化以后的二进制数组数据偏大的情况. 请注意,不是所有的 List 对象都会出现这种情况,这个根据你 List 对象中 ...

  10. noi.ac #534 猫

    题目链接:戳我 [问题描述] 有n座山,m只猫和p个工作人员.山从左往右编号为1∼n,山i和i−1之间的距离是di米. 有一天,猫都到山上去玩了:第i只猫会到山hi去,并一直玩到时间ti,之后就在那座 ...