欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    ABAP74新特性.docx

    • 资源ID:8942651       资源大小:55.36KB        全文页数:21页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    ABAP74新特性.docx

    1、ABAP74新特性ABAP 7.4 新特性(一):行定义 Inline Declarations以前我们要用一个变量的时候,需要在使用语句的前面先定义。现在,可以在使用的时候就定义了。比如说我们经常要预先定义表的工作区,然后在 loop时使用。现在可以在loop的时候就定义对于表的工 作区了。以前:plain view plain copy print? C1.DATA itab TYPE TABLE OF scarr.2.SELECT * FROM scarr into TABLE itab.3.DATA wa LIKE l_INE OF itab.4.READ TABLE itab WIT

    2、H KEY carrid = LH INTO wa.现在:plain view plain copy print?1.DATA itab TYPE TABLE OF scarr.2.SELECT * FROM scarr into TABLE itab.3.READ TABLE itab WITH KEY carrid = LH INTO DATA(wa).行定义(inline declaration)变量LOOP AT同理,注意行定义的变量作用域和以前定义的是一样的 又比如在方法中接收返回变量时:原:plain view plain copy print? C1.DATA al TYPE.2

    3、.DATA a2 TYPE.3.oref-meth( IMPORTING p仁al4.IMPORTING p1=a25.)现在:plain view plain copy print?1.oref-meth( IMPORTING pl = DATA(a1)2.IMPORTING p1= DATA(a2)3.)对于field symbols也是支持行定义的。以前1:plain view plain copy print? C1.DATA a TYPE string VALUE test.2.FIELD-SYMBOL .3.ASSIGN a to .1.DATA a TYPE string VAL

    4、UE test.2.ASSIGN a to FIELD-SYMBOL(vfs).还可以用在读取表中:plain view plain copy print? C1.LOOP AT itab ASSIGNING FIELD-SYMBOL() where carrid = LH.2.2.WRITE:.4.3.ENDLOOP.plain view plain copy print?1.READ TABLE itab assigning field-symbol() INDEX 1.行定义方便了我们的使用,在表中它会自动根据读取的表类型定义相应的工作区类型。 但是使用这种方法注意作用域问题。ABAP

    5、7.4新特性(二):NEW 操作符NEW实例操作符了解JAVA的知道,我们可以new 一个对象实例出来,现在ABAP也可以这样了。NEW可以创建匿名的 数据对象或者类的实例。匿名就是 new出来的对象没有名字。因为后面不需要这个对象了,只是为了 new出来赋值给左边的对象(赋值也不太对,就指向。),一次使用,简化代码。具体参考 java匿名类一般用到的3种形式后面例子详细解释1.NEW dtype ( value ).创建一个类型为dtype的匿名数据对象,然后传值给创建的对象(左操作符)。2. NEW class ( p1 = a 1 p2 = a2 .).创建一个名为class类的实例,并

    6、且传参到实例的构造函数。3. NEW #(.).根据操作数类型创建一个匿名数据对象或者一个类的实例。 女口 a = new #( . ), new #(.)这里创建的匿名类是参考a的类型来的,即和a的类型一致。举例说明一下:1.n ew数据对象before 7.4plain view plain copy print? 匚1.FIELD-SYMBOLS TYPE data.2.DATA dref TYPE REF TO data.3.CREATE DATA dref TYPE i.4.ASSIGN dref-* TO .5.vfs = 555.with 7.4plain view plain

    7、copy print?1.DATA dref TYPE REF TO data.2.dref = NEW i( 555 ).2.new类实例before 7.4plain view plain copy print?1.是一个类名DATA oref TYPE REF TO class. 这里 class2.CREATE OBJECT oref EXPORTING .with 7.4plain view plain copy print?1.DATA oref TYPE REF TO class.2.oref = NEW #(.).或者:plain view plain copy print?

    8、1.DATA oref TYPE REF TO class.2.oref = NEW #(.).最后举一个综合的例子:plain view plain copy print? C1.TYPES: BEGIN OF t_struct1,2.col1 TYPE i,3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.col2 TYPE i,END OF t_struct1,BEGIN OF t_struct2,col1 TYPE i,col2 TYPE t_struct1,col3 TYPE TABLE OF t_struct1 WITH EM

    9、PTY KEY,END OF t_struct2,t_itab TYPE TABLE OF t_struct2 WITH EMPTY KEY.DATA(dref)=NEW t_itab( ( col1 = 1col2-col1 = 1col2-col2 = 2col3 = VALUE #( ( col1 = 1 col2 = 2 ) VALUE 下篇会讲(col1 = 3 col2 = 4 )(col1 = 2col2-col1 = 2col2-col2 = 4col3 = VALUE #( ( col1 = 2 col2 = 4 )(col1 = 6 col2 = 8 ).WRITEvspa

    10、n class=L0S55: v/spandref-v/span* 1 -col1, dref-* 2 -col1. 这个程序定义了两个结构 t_struct1禾口 t_struct2,其中t_struct2为deep struct,因为它的col3是参考t_struct1的表类型。那么后面那段代码,就是定义了一个 dref引用类型变量,该变量指向的对象类型和t_itab类型相同。然后利用new和value来为匿名对象初始化数据,然后把这个匿名对象赋值给dref。这时候dref就有2行数据了。可以拷贝这段代码 然后断点看dref指向的容。1 able?able ContentsA,Table

    11、DREF-* jfABihtes Stanfard 2x3(24) *Insert Column Cobmns Row8L1 I COL2 Flat StructureCOL3 Internal TebleStructure: flat & not char1 ikeStandard Table2x2(8)2Struct.lire! flat E not char 1Standard TableABAP 7.4新特性(三):VALUE 操作符关于VALUE前面也提到过了,其主要是用来给一个结构、表等对象初始化值。主要有下面三个方式:.value dtype#()构造一个任意类型的初始值.val

    12、ue dtype#( comp1 = a1 comp2 = a2 .)构造一个任意类型的结构体的初始值.value dtype#(.) (.) . ).构造一个任意类型的表的初始值上面dtype#意思是可以指定一个dtype的类型或者直接用#,用#时,其类型和被赋值的对象的数据类型 一样。如果value后的dtype是个表,则必须指定key值,或者声明为empty key。sen .sap./com mun ity/abap/blog/2013/06/27/abap-news-for-release-740-i nternal-tables-with-empty-key 。When you d

    13、eclare a standard table data object without specifiying the primary key, the default key istake n. The default key con sists of all character and byte like fields of the table structrure. If the structure contains only nu meric fields, duh! The same would have happe ned if you declared the DEFAULTKE

    14、Y explicitly. But note that an empty key is not possible for sorted and hashed tables.Without explicit key declaration the type would not be usable for the inline data declaration shown here.Since I dont care about the key, I use the empty key. A SORT itab without specifying a sort key will do nothi

    15、ng and produce a warning from the syn tax check.Starting with release 7.40 you declare your standard tables either with a good key or an empty key but never with the cha ncy default key!例1plain view plain copy print?1.CLASS c1 DEFINITION.2.PUBLIC SECTION.3.TYPES: BEGIN OF t_struct.4.col1 TYPE i,5.co

    16、l2 TYPE i,6.END OF t_struct.7.CLASS-METHODS m1 IMPORTING p TYPE t_struct.8.ENDCLASS.9.10.CLASS c1 IMPLEMENTATION.11.METHOD m1.12.WRITE:col1: , p-col1,col2:,p-col2.13.ENDMETHOD.14.ENDCLASS.15.16.START-OF-SELECTION.17.c1= m1( VALUE #( col1 = 1 col2 = 2 ).输出就是col:1 col:2.例2plain view plain copy print?

    17、匚1.DATA itab TYPE RANGE OF i.2.itab = VALUE #( sign = T option = BT ( low = 1 high = 10 )3.( low = 21 high = 30 )4.( low = 41 high = 50 )5.option = GE ( low = 61 ).6.cl_demo_output=DISPLAY( itab ).& OutputITABSIGN OPTION LOW HIGHBT110IBT2130IET415QIGE610例3plain view plain copy print? C1.TYPES t_date

    18、_tab TYPE table of string with empty key.2.DATA(date_tab) = VALUE t_date_tab(3.( | conv d( sy-datlo - 1 ) DATE = environment | )4.( | sy-datlo DATE = environment | )5.( | conv d( sy-datlo + 1 ) DATE = environment | ).6.6.cl_demo_output=DISPLAY( date_tab ).s Output这里DATE = environment是用来格式化日期的,表达式里必须

    19、有日期类型 d才能使用。environment对应的值是 CL_ABAP_FORMAT=D_ENVIRONMENT另外对日期进行加减时还需 conv。如果第二行不用DATE = environment,那么输出就是20160606这样的格式。关于嵌入表达式可以 F1看看例4为每一行赋值指定列名的好处:可以指定某一行的某一列都是同一个值而不用每一行都要输入该列值。TmnleABC11 12 1321 22 233丄 32 3320ABAP编辑器录昼*报表哗丨召& 丨 2 *室根丸7:ST1拿匚TYPE L * 上切 OF it.12i Etypes; 3EGIN OF13.141516.Ti T

    20、VPE i,b TYPE i,c TYPE i.三ND OF ty.DAIA it ME IA3LE OF ty.,:t = ALUE 申(ab - 1 ? - = 13 )(a21 b - 22 c = 23 )(iJI b = c = )ty 二X -3 CCL_DEMO_OHTP(JT-dispJayi it.ASAP骗棘器:显示报表ZYRYTEST- / 富口m孙龜 阳霸做 I ST 运ih(b 12 c * j b 二 22 c 二J;- CL_DEMO 丄EH display itIQ:补充:Constructi nn nf an i rite ruetable ilfih2 fr

    21、om line 拆 and columns of an i nternal tablei t ab I. You 仁 wof course a I so u 曲 the ( OHR1fPI)I G operator to r rm st rue t t.h lines*DATA (itab2) = VALUE t_itab2 ( FOB 阿丹 IN itab河旺R ( coll c 30 )(coll = wa-coL2 co!2 = wa-col3 ) ) *ABAP 7.4新特性(四):COND SWITCH 操作符在新语法中,可以使用 COND、SWITCH来根据逻辑表达式或情况的不同确

    22、定指定变量的结果。 语法格式:.COND dtype | # ( WHEN Iog_exp1 THEN resultl WHEN log_exp2 THEN result2 ELSE resultn ).SWITCH dtype | # ( opera ndWHEN con st1 THEN result1 WHEN const2 THEN result2 ELSE resultn ).里可填,THEN后面都是返回的结果。在 SWITCH中opera nd是一个变量类似case opera nd例一:plain view plain copy print? C1.DATA(time) = CO

    23、ND string(2.WHEN sy-timlo 120000 THEN | CONV t( sy-timlo - 12 * 3600 ) TIME = ISO PMI4.WHEN sy-timlo = 120000 THEN |High noon|5.* ELSE6.).7.WRITE: time.sy = 120000就是时间12点。程序就是根据sy-timlo是否超过12点 然后设置不同的格式赋值给例二:plain view plain copy print?:匸1.DATA(a) = 11.2.DATA(text) = SWITCH #( a3.WHEN 11 THEN 11yyag

    24、d4.WHEN 12 THEN 12dkdkkd5.* ELSE6.).7.WRITE: text.圖whe n.time A 这段代码就是根据变量a的值,赋不同的值给text。ABAP 7.4新特性(四):表访问表达式现在新语法支持itab这种类似数组的形式了,不过注意的是如果表不含 deep struct,itab 1 2 是不允许的,这是和二维数组区别之一。只能通过itab 1卜col name的形式,也就是说用itab 一般用来返回某一行的数据, 如果你想访问改行的某一列则加上-和列名即可。使用主索引访问表wa = itab idx .相当于 READ TABLE itab INDEX

    25、 idx INTO wa.使用次级/二级索引访问表wa = itab KEY key INDEX idx .相当于 READ TABLE itab INDEX idx USING KEY key INTO wa. 这里注意itab必须指定次级索引,key为次级索引名不是表字段。举例:plain view plain copy print? C1.types: BEGIN OF ty,2.a TYPE i,3.b TYPE i,4.c TYPE i,5.END OF ty.6.DATA it2 TYPE TABLE OF ty WITH KEY a.7.DATA wa like LINE OF

    26、it.8.DATA aa TYPE SORTED TABLE OF ty WITH UNIQUE KEY a9.WITH NON-UNIQUE SORTED KEY second_key10.COMPONENTS b c.11.12. aa = VALUE #(13.(a = 11 b = 32 c = 13 )14.(a = 21 b = 22 c = 23 )15.(a = 31 b = 42 c = 33 ).16.*wa = it2 1 .17.wa = aa KEY second_key INDEX 1 .18.CL_DEMO_OUTPUT=display( wa ).这里aa定义了

    27、主索引 key a,还定义了二级索引 second_key,这个二级索引由字段 b c组成wa - aa KEY seco nd key INDEX 1 .这里指疋了以二级索引 seco nd key 的方式访问表aa,那么默认是按照升序排列的,所以index 1实际上是aa的第二行(B=22最小)。结果: OutputWAA S C21 22 23如果你把第一行的b改为22那么wa就是第一行了,应为b第一、第二行都最小,那么就比较二级所以 的C字段,看哪个最小。使用表KEY访问表类似上面wa = itab KEY key coll = . col2 =.wa = itab KEY key COMPONENTS coll = . col2 =.相当于 READ TABLE WITH TABLE KEY key COMPNENTS col1 = . col2 = . INTO wa.注意的是这种方式必须指定完所以构成 key的字段。链/深结构的访问?. itab.-comp?. struct-comp.?. itab.【. .举个例子上代码和结果图:plainview plain copy print? 41.TYPES:2.BEGIN O


    注意事项

    本文(ABAP74新特性.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开