日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

ABAP 7.4 新语法-内嵌生命和内表操作

發布時間:2025/3/20 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ABAP 7.4 新语法-内嵌生命和内表操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  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 新语法-内嵌生命和内表操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。