1.内嵌声明

    2.内表操作

    3.opensql

*&---------------------------------------------------------------------*

1. 内嵌声明

  1)声明符号: DATA(...)

再也不需要建立一堆的临时变量了

  2)指针声明符:FILED-SYMBOL(…)

*&---------------------------------------------------------------------*

7.40之前-变量

DATA text TYPE string.
text = `...`.

7.40之后-变量

DATA(text) = `...`.

*&---------------------------------------------------------------------*

7.40之前-工作区

DATA wa like LINE OF itab.
LOOP AT itab INTO wa.  ...
ENDLOOP.

7.40之后-工作区

LOOP AT itab INTO DATA(wa).   ...
ENDLOOP.

*&---------------------------------------------------------------------*

7.40之前-返回参数

DATA xml TYPE xstring.
CALL TRANSFORMATION ... RESULT XML xml.

7.40之后-返回参数

CALL TRANSFORMATION ... RESULT XML DATA(xml).

*&---------------------------------------------------------------------*

7.40之前-传输参数

DATA a1 TYPE ...DATA a2 TYPE ...oref->meth( IMPORTING p1 = a1 IMPORTING p2 = a2 ... )

7.40之后-传输参数

oref->meth( IMPORTING p1 = DATA(a1) IMPORTING p2 = DATA(a2) ... )

*&---------------------------------------------------------------------*

7.40之前-引用声明

DATA ixml           TYPE REF TO if_ixml.
DATA stream_factory TYPE REF TO if_ixml_stream_factory.
DATA document       TYPE REF TO if_ixml_document.ixml           = cl_ixml=>create( ).
stream_factory = ixml->create_stream_factory( ).
document       = ixml->create_document( ).

7.40之后-引用声明

DATA(ixml)           = cl_ixml=>create( ).
DATA(stream_factory) = ixml->create_stream_factory( ).
DATA(document)       = ixml->create_document( ).

*&---------------------------------------------------------------------*

740之前-指针声明

FIELD-SYMBOL:<LFS_TAB> LIKE LINE OF ITAB.LOOP AT itab ASSIGNING <LFS_TAB>....
ENDLOOP.

740之后-指针声明

LOOP AT ITAB ASSIGNING FIELD-SYMBOL(<LFS_TAB>).…ENDLOOP.

READ TABLE itab assigning field-symbol(<line2>) ....

2. 内表操作

  • VALUE
  • MOVE-CORRESPONDING
  • CORRESPOING
  • FOR
  • REDUCE
  • GROUP BY
  • FILTER

VALUE语法:

结构赋值

... VALUE dtype | #(  [BASE dobj] comp1 = dobj1 comp2 = dobj2 ... ) ...

内表赋值

... VALUE dtype | #( [BASE itab] (  (line1-com1 = dobj1) ( line2 ..) ... ) ...

 "内表不能带表头       IT_VKORG = VALUE #( KUNNR = E_KNA1-KUNNR ( VKORG = '3000' )( VKORG = '6008' ) ) .

DATA itab TYPE RANGE OF i.
itab = VALUE #( sign = 'I' option = 'BT' ( low = 1 high = 10 )  ( low = 21 high = 30 )  ( low = 41 high = 50 )  option = 'GE' ( low = 61 ) ).
cl_demo_output=>DISPLAY( itab ). 

MOVE-CORRESPONDING语法:

CORRESPONDING语法:

itab[ … ]语法

… itab[ … ] …

相当于read table itab ….

u缺点

如果对应没找到,会抛出CX_SY_ITAB_LINE_NOT_FOUND异常

系统变量SY-SUBRC不会记录成功与否

u改进

IF line_exists ( itab[…] )

…..

ENDIF

通过这行语法判断行是否查找到

FOR语法

描述

加强版本的loop at语法,与REDUCE、VALUE关键字配合使用

语法

…FOR i = ... [THEN expr]  UNTIL | WHILE  log_exp ...

…VALUE  itab( FOR i = … [THEN expr]  UNTIL | WHILE  log_exp ... )

…REDUCE  type( INIT FOR  …. NEXT …..

REDUCE语法

GROUP BY语法

FELTER语法

描述

可以根据指定值(一个)或者指定内表(多个)的值过滤itab并返回itab类型的结果集

语法

FILTER  type(  itab   [EXCEPT]   [IN ftab]   [USING KEY keyname ] 
                                                                   WHERE c1 op f1  [AND c2 op f2  [...] ]  ) ...

变式

FILTER  type( itab …) 对应一个值过滤

FILTER  type( itab in tab …)对应多个值过滤

其它

EXCEPT如果不指定则表示满足条件的找出来,如果指定则表示不满足条件的找出来

WHERE对应过滤的条件,是必须要指定的

3. OPEN SQL

    SELECT SINGLE @ABAP_TRUE INTO @DATA(EXISTS) FROM KNA1 WHERE KUNNR EQ @I_KNA1-KUNNR.IF EXISTS <> ABAP_TRUE.ENDIF.

ABAP 7.4 新语法-内嵌生命和内表操作相关推荐

  1. FPGA芯片结构(可编程输入输出单元IOB/可配置逻辑块CLB/数字时钟管理模块DCM/ 嵌入式块RAM(BRAM)/丰富的布线资源/ 底层内嵌功能单元/内嵌专用硬核)

    目前主流的FPGA仍是基于查找表技术的,已经远远超出了先前版本的基本性能,并且整合了常用功能(如RAM.时钟管理 和DSP)的硬核(ASIC型)模块.如图1-1所示(注:图1-1只是一个示意图,实际上 ...

  2. 邮件中html内嵌图片,邮件内嵌html

    一般的HTML格式电子邮件,都可以使用内建有HTML编辑器的电子邮件程序(如:Outlook Express)编写发送.我们以Outlook Express 5.0(简称OE 5.0)为例,点击工具栏 ...

  3. 内嵌资源html,内嵌元素(HTML)

    内嵌内容 applet元素 过时的HTML Applet元素(applet)将Java applet嵌入文档中:不赞成使用此元素 embed元素 元素嵌入在文档中指定的点的外部内容.此内容由外部应用程 ...

  4. js通过判断h5页面是否内嵌在app内

    // 通过ua标识判断var userAgent = navigator.userAgent.toLowerCase();//获取UA信息 if(userAgent.indexOf("ezh ...

  5. 6.(Mysql数据管理相关)连接MYSQL,修改密码,增加新用户,数据库相关命令,表操作相关命令,数据相关命令,数据库sql导入和导出,备份数据库,查看不到mysql数据库的解决办法

     mysql安装完之后,登陆后发现只有两个数据库:mysql>show databases; +--------------------+ | Database           | +- ...

  6. html嵌入式的脚本语言,Markdown语法及html内嵌

    之前看到很多大佬博客写的特别漂亮,非常羡慕,他们是怎么排版的呢?作为一个小白,学习使我快乐....终于在不断摸索中,找到方法.原来大佬们使用了一个新的语言--Markdown. 1.Markdown介 ...

  7. java mongo 查询数组_MongoDB查询(数组、内嵌文档)

    一.简介 我们上一篇介绍了db.collection.find()可以实现根据条件查询和指定使用投影运算符返回的字段省略此参数返回匹配文档中的所有字段,我们今天介绍了对数组和内嵌文档的查询操作,尤其是 ...

  8. X86_64 GNU汇编、寄存器、内嵌汇编

    文章目录 一.汇编语言 二.指令 数据传输指令 栈操作指令 push pop 运算指令 位操作 比较操作指令 标志寄存器 流控制指令 三.伪指令 .equ .rept .endr .lcomm .gl ...

  9. HTML中添加超链接、音频标签、视频标签、内嵌框架标签

    目录 超链接 音频标签 视频标签 内嵌框架标签 超链接 1.超链接:当用户点击文字.图像.视频等页面元素时,页面会发生跳转,则这些页面元素就是超链接 2.超链接标签:  <a href='url ...

最新文章

  1. python冒泡排序
  2. 机器学习-第九章 聚类
  3. Zabbix 3.2.6 通过Discovery批量监控Oracle表空间
  4. 驾照考试(科目三-大路)
  5. 想过没有,Spring的Bean为啥默认单例?
  6. SpringBoot(一)——快速入门
  7. 因为sudoers权限而引起的sudo失效
  8. 湖北工业大学计算机专硕学费,2019年湖北工业大学硕士研究生学费奖助政策
  9. DEVO 7E遥控器配对
  10. web.xml中配置DispatcherServlet前端控制器和CharacterEncodingFilter字符过滤器后web-app标签显红报错
  11. 太极图正确画法_八卦太极图的正确画法
  12. 未来中国最热门的十大职业
  13. 组件化----组件抽离
  14. 【学术相关】人工智能300年!LSTM之父万字长文:详解现代AI和深度学习发展史...
  15. 读名老中医之路笔记(三)
  16. 基波、谐波、谐波次数
  17. tomcat 启动时报错:To prevent a memory leak, the JDBC Driver has been forcibly unregistered
  18. 自定义柱状图(水滴图)的填坑之路
  19. 基于RFID定位技术的工地人员定位--新导智能
  20. java并发编程实战wwj----------------------第二阶段--------------01-02-03

热门文章

  1. 开复学生网--没有学习的动力怎么办
  2. 8000字干货 | 教你打造电商产品的用户体系
  3. 【观点】互联网抑或使人更愚蠢
  4. AWS宣布Amazon S3将停止支持SigV2
  5. C++构造函数和文件组织
  6. RabbitMQ基本概念
  7. 初试Windows 8 RTM
  8. MongoDB的地理位置索引
  9. HBase+Spark技术双周刊 第四期
  10. 如何用纯 CSS 创作一个荧光脉冲 loader 特效