SAP ABAP 新語法補充(DATA、COND、SWITCH、VALUE、FOR、REDUCE、CONV、CORRESPONDING、GROUP BY、FELTER)


新語法

示例

等價於/說明

DATA

(1)DATA(TEXT) = ‘ABCDE’.

(2)LOOP AT ITAB INTO DATA(WA).

         ……

     ENDLOOP.

(1)DATA TEXT TYPE STRING.

TEXT = ‘ABCDE’.

(2)DATA WA LIKE LINE OF ITAB.

LOOP AT ITAB INTO WA.

……

ENDLOOP.

COND

LV_STR = COND #(WHEN LV_STR IS INITIAL THEN ‘ABCDE’ ELSE LV_STR).

 

IF LV_STR IS INITIAL.

       LV_STR = ‘ABCDE’.

ELSE.

       LV_STR = ‘ ‘.

ENDIF.

 

SWITCH

LV_STR = SWITCH #( N WHEN 1 THEN ‘ABCDE‘ WHEN 2 THEN ‘FGHTL).

CASE N.

   WHEN 1.

      LV_STR = ‘ABCDE’.

   WHEN 2.

      LV_STR = ‘FGHTL’.

   WHEN OTHERS.

      LV_STR = ‘ ‘.

ENDCASE.

VALUE

ITAB= VALUE #( ( ID = 1 NAME = ‘LILI’)

               (ID = 2 NAME = ‘LIMI)).

TYPES:BEGIN OF TY_ITAB,

        ID TYPE I,

        NAME TYPE STRING,

       END OF TY_ITAB.

DATA:ITAB TYPE TABLE OF TY_ITAB.

再賦值

FOR

DATA(ITAB2) = VALUE ITAB2(FOR WA IN ITAB1 WHERE ( ID  < 50 ) ( ID = WA-ID NAME = WA-NAME AGE = WA-AGE )).

加強版的LOOP AT,可用於填充內表、根據條件匯總、計算等操作

REDUCE

DATA( SUM ) = REDUCE I( INIT X = 0 FOR WA IN ITAB NEXT X = X+WA-AGE ).

可用於匯總計算

CONV

LV_STR = ‘001024.012’.

LV_INT = CONV I( LV_STR ).

數據類型轉換,不需要中間變量

CORRESPONDING

STRUCT2 = CORRESPONDING #( STRUCT1 ).

用於實現結構和內表之間的動態賦值操作

GROUP BY

LOOP AT ITAB ASSIGNING FIELD-SYMBOL(<FS_ITAB>) GROUP BY <FS_ITAB>-ID.

相當於SQL中的GROUP BY,用於內表處理

FELTER

DATA( ITAB1 ) = FILTER #( ITAB USING KEY ID)單值過濾

DATA( ITAB2 ) = FILTER #( ITAB USING KEY ID WHERE AGE = CONV #( TO_UPPER( AGE )))多值過濾

過濾,可以指定一個或多個值進行過濾


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM