日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【整理】ABAP 7.40新特性介绍(下)

發布時間:2025/3/20 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【整理】ABAP 7.40新特性介绍(下) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ABAP 7.40 Quick Reference?

?

9.Strings? - 字符串

I.?? String Templates 字符串模板

A string template is enclosed by two characters |” and creates a character string.

字符串模板由兩個“|”字符括起來,創建一個字符串。

Literal text consists of all characters that are not in braces {}. The braces can contain:

字面文本包含所有不在大括號{}內的字符。 大括號內可包括如下內容:

  • data objects, 數據對象
  • calculation expressions, 計算表達式
  • constructor expressions, 構造器表達式
  • table expressions, 表表達式
  • predefined functions, ?預定義功能
  • functional methods?and?method chainings,??功能方法和方法鏈

下面這個例子就是在大括號內包含了內表表達式,取的內表條件滿足某個條件的某個值字段。

?

?II.? Concatenation 串聯

?

III. Width/Alignment/Padding 寬度/對齊/填充

WRITE?/?|{?'LEFT'?????? WIDTH?=?20?ALIGN?=?LEFT????? PAD?=?'0'?}|. WRITE?/?|{?'CENTRE'???WIDTH?=?20?ALIGN?=?CENTER? PAD?=?'0'?}|. WRITE?/?|{?'RIGHT'???? WIDTH?=?20?ALIGN?=?RIGHT???? PAD?=?'0'?}|.

?

IV. Case

原態,大寫,小寫

WRITE?/?|{?'Text'?CASE?=?(CL_ABAP_FORMAT=>C_RAW)???}|. WRITE?/?|{?'Text'?CASE?=?(CL_ABAP_FORMAT=>C_UPPER)?}|. WRITE?/?|{?'Text'?CASE?=?(CL_ABAP_FORMAT=>C_LOWER)?}|.

?

V.? ALPHA conversion

DATA(LV_VBELN)?=?'0000012345'. WRITE?/?|{?LV_VBELN??ALPHA?=?OUT?}|.?"or?use?ALPHA?=?IN?to?go?in?other?direction

?

VI.? Date conversion

WRITE?/?|{?PA_DATE?DATE?=?ISO?}|.???????????"Date?Format?YYYY-MM-DD WRITE?/?|{?PA_DATE?DATE?=?USER?}|.??????????"As?per?user?settings WRITE?/?|{?PA_DATE?DATE?=?ENVIRONMENT?}|.???"Formatting?setting?of?language?environment

?

10. Loop at Group By

I.?? Definition 定義

LOOP AT itab?result?[cond] GROUP BY?key ( key1 = dobj1 key2 = dobj2 …?
????? [gs = GROUP SIZE] [gi = GROUP INDEX] )?
????? [ASCENDING|DESCENDING [AS TEXT]]?
????? [WITHOUT MEMBERS]?
????? [{INTO group}|{ASSIGNING <group>}]
????? …?
??????
[LOOP AT GROUP?group|<group>?
??????
?
??????ENDLOOP.]?
?????

ENDLOOP.

?

II.? Explanation 解釋

The outer loop will do one iteration per key. So if 3 records match the key there will only be one iteration for these 3 records. The structure “group” (or “<group>” ) is unusual in that it can be looped over using the “LOOP AT GROUP” statement. This will loop over the 3 records (members) of the group. The structure “group” also contains the current key as well as the size of the group and index of the group ( if GROUP SIZE and GROUP INDEX have been assigned a field name). This is best understood by an example.

外部循環將對每個鍵執行一次迭代。因此,如果3條記錄與關鍵值匹配,那么這3條記錄將只有一次迭代。結構“group”(或“<group>”)不常見,因為它可以使用“LOOP AT group”語句循環。這將循環訪問組的3個記錄(成員)。結構“group”還包含當前鍵、組的大小和組的索引(如果組大小和組索引已分配了字段名)。這一點最好通過一個例子來理解。

?

III. Example 舉例

TYPES:?BEGIN?OF?TY_EMPLOYEE,NAME?TYPE?CHAR30,ROLE?TYPE?CHAR30,AGE??TYPE?I,END?OF?TY_EMPLOYEE,TY_EMPLOYEE_T?TYPE?STANDARD?TABLE?OF?TY_EMPLOYEE?WITH?KEY?NAME. DATA(GT_EMPLOYEE)?=?VALUE?TY_EMPLOYEE_T( (?NAME?=?'Mao'?????????ROLE?=?'ABAP?guru'???????AGE?=?29?) (?NAME?=?'Zhangjie'????ROLE?=?'FI?Consultant'???AGE?=?33?) (?NAME?=?'Hujianchun'??ROLE?=?'ABAP?guru'???????AGE?=?37?) (?NAME?=?'XiaoLiu'?????ROLE?=?'FI?Consultant'???AGE?=?31?) (?NAME?=?'Xiuxianhai'??ROLE?=?'ABAP?guru'???????AGE?=?30?) (?NAME?=?'Huangping'???ROLE?=?'SD?Consultant'???AGE?=?42?)?). DATA:?GV_TOT_AGE?TYPE?I,GV_AVG_AGE?TYPE?DECFLOAT34. "Loop?with?grouping?on?Role LOOP?AT?GT_EMPLOYEE?INTO?DATA(LS_EMPLOYEE)GROUP?BY?(?ROLE??=?LS_EMPLOYEE-ROLESIZE??=?GROUP?SIZEINDEX?=?GROUP?INDEX?)ASCENDINGASSIGNING?FIELD-SYMBOL(<GROUP>).CLEAR:?GV_TOT_AGE."Output?info?at?group?levelWRITE:?/?|Group:{?<GROUP>-INDEX?}????Role:?{?<GROUP>-ROLE?WIDTH?=?15?}|&?|?????Number?in?this?role:?{?<GROUP>-SIZE?}|."Loop?at?members?of?the?groupLOOP?AT?GROUP?<GROUP>?ASSIGNING?FIELD-SYMBOL(<LS_MEMBER>).GV_TOT_AGE?=?GV_TOT_AGE?+?<LS_MEMBER>-AGE.WRITE:?/13?<LS_MEMBER>-NAME.ENDLOOP."Average?ageGV_AVG_AGE?=?GV_TOT_AGE?/?<GROUP>-SIZE.WRITE:?/?|Average?age:?{?GV_AVG_AGE?}|.SKIP. ENDLOOP.

?

IV. Output 輸出結果

?

11. Classes/Methods 類/方法

I.?? Referencing fields within returned structures 引用返回結構中的字段

?

II.? Methods that return a type BOOLEAN 返回布爾類型的方法

NB : The type “BOOLEAN” is not a true Boolean but a char1 with allowed values X,- and <blank>.

?????? Using type “FLAG” or “WDY_BOOLEAN” works just as well.

注意 :類型“BOOLEAN”不是真正的布爾類型,而是一個char1,其允許值為X,-和空。使用類型“FLAG”或“WDY_BOOLEAN”也同樣可以。

?

III. NEW operator - NEW運算符

This operator can be used to instantiate an object.此運算符可用于實例化對象。

?

12. Meshes 網格

Allows an association to be set up between related data groups.

允許在相關數據組之間設置關聯。

?

I.Problem

Given the following 2 internal tables:

給出以下兩個內表:

TYPES:?BEGIN OF?t_manager, name???TYPE?char10, salary?TYPE?int4, END OF?t_manager, tt_manager?TYPE SORTED TABLE OF?t_manager?WITH UNIQUE KEY?name.TYPES:?BEGIN OF?t_developer, name????TYPE?char10, salary??TYPE?int4, manager?TYPE?char10,???“Name of manager END OF?t_developer, tt_developer?TYPE SORTED TABLE OF?t_developer?WITH UNIQUE KEY?name.

Populated as follows:填充如下值

Get the details of Jerry’s manager and all developers managed by Thomas.

?

II.? Solution

TYPES:?BEGIN?OF?MESH?M_TEAM,MANAGERS???TYPE?TT_MANAGER??ASSOCIATION?MY_EMPLOYEE?TO?DEVELOPERSON?MANAGER?=?NAME,DEVELOPERS?TYPE?TT_DEVELOPER?ASSOCIATION?MY_MANAGER?TO?MANAGERSON?NAME?=?MANAGER,END?OF?MESH?M_TEAM. DATA:?LS_TEAM?TYPE?M_TEAM. LS_TEAM-MANAGERS???=?LT_MANAGER. LS_TEAM-DEVELOPERS?=?LT_DEVELOPER. *Get?details?of?Jerry’s?manager?* "get?line?of?dev?table ASSIGN?LT_DEVELOPER[?NAME?=?'JERRY'?]?TO?FIELD-SYMBOL(<LS_JERRY>). DATA(LS_JMANAGER)?=??LS_TEAM–DEVELOPERS\MY_MANAGER[?<LS_JERRY>?]. WRITE:?/?|Jerry's?manager:{?LS_JMANAGER-NAME?}|,30|Salary:{?LS_JMANAGER-SALARY?}|."Get?Thomas’?developers SKIP. WRITE:?/?|Thomas'developers:|. "line?of?manager?table ASSIGN?LT_MANAGER[?NAME?=?'Thomas'?]?TO?FIELD-SYMBOL(<LS_THOMAS>). LOOP?AT?LS_TEAM–MANAGERS\MY_EMPLOYEE[?<LS_THOMAS>?]ASSIGNING?FIELD-SYMBOL(<LS_EMP>).WRITE:?/?|Employee?name:?{?<LS_EMP>-NAME?}|. ENDLOOP.

?

III. Output

Jerry's?manager:?Jason???? Salary:?3000
Thomas'developers:
Employee?name:?David
Employee?name
:?Jack
Employee?name
:?John

?

13. Filter 過濾器

Filter the records in a table based on records in another table.

根據另一個表中的記錄篩選表中的記錄。

?

I.Definition

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

?

II.? Problem

Filter an internal table of Flight Schedules (SPFLI) to only those flights based on a filter table that contains the fields Cityfrom and CityTo.

將航班計劃的內表(SPFLI)篩選出僅包含基于Cityfrom和CityTo字段的航班表。

?

III. Solution

TYPES:?BEGIN?OF?TY_FILTER,CITYFROM?TYPE?SPFLI-CITYFROM,CITYTO???TYPE?SPFLI-CITYTO,F3???????TYPE?I,END?OF?TY_FILTER,TY_FILTER_TAB?TYPE?HASHED?TABLE?OF?TY_FILTERWITH?UNIQUE?KEY?CITYFROM?CITYTO. DATA:?LT_SPLFI?TYPE?STANDARD?TABLE?OF?SPFLI. SELECT?*?FROM?SPFLI?APPENDING?TABLE?LT_SPLFI. DATA(LT_FILTER)?=?VALUE?TY_FILTER_TAB(?F3?=?2(?CITYFROM?=?'NEW?YORK'??CITYTO??='SAN?FRANCISCO'?)(?CITYFROM?=?'FRANKFURT'?CITYTO?=?'NEW?YORK'?)??). DATA(LT_MYRECS)?=?FILTER?#(?LT_SPLFI?IN?LT_FILTERWHERE?CITYFROM?=?CITYFROMAND?CITYTO?=?CITYTO?). "Output?filtered?records LOOP?AT?LT_MYRECS?ASSIGNING?FIELD-SYMBOL(<LS_REC>).WRITE:?/?<LS_REC>-CARRID,8?<LS_REC>-CITYFROM,30<LS_REC>-CITYTO,45?<LS_REC>-DEPTIME. ENDLOOP.

Note: using the keyword “EXCEPT” (see definition above) would have returned the exact opposite records i.e all records EXCEPT for those those returned above.

注意:使用關鍵字“EXCEPT”(參見上面的定義)將返回完全相反的記錄,即除上面返回的記錄之外的所有記錄。

?

總結

以上是生活随笔為你收集整理的【整理】ABAP 7.40新特性介绍(下)的全部內容,希望文章能夠幫你解決所遇到的問題。

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