SAP ABAP 基本語法

2021-12-24 11:42 更新

語句

ABAP源程序由注釋和ABAP語句組成。 ABAP中的每個語句都以關(guān)鍵字開頭,以句點結(jié)尾,ABAP不區(qū)分大小寫。

程序中的第一個非注釋行以單詞REPORT開頭。 報告將始終是創(chuàng)建的任何可執(zhí)行程序的第一行。 該語句后面是以前創(chuàng)建的程序名稱。 然后用一個?.?終止該行。

語法是 -

REPORT [Program_Name]. 
 
[Statements…]. 

這允許語句根據(jù)需要在編輯器中占用盡可能多的行。 例如,REPORT可能看起來像這樣 -

REPORT Z_Test123_01. 

語句包括命令和任何以句點結(jié)尾的變量和選項。 只要句點出現(xiàn)在語句的結(jié)尾,就不會出現(xiàn)問題。 正是這個時期,標志著聲明的完成。

讓我們編寫代碼。

在REPORT語句下面的行,只需鍵入以下語句:寫“ABAP Tutorial"。

REPORT Z_Test123_01.

Write 'This is ABAP Tutorial'. 

撰寫語句時需要考慮的四件事: 

  • 寫語句將引號中的任何內(nèi)容寫入輸出窗口。

  • ABAP編輯器將所有文本轉(zhuǎn)換為大寫,除了由單引號包圍的文本字符串。

  • 與一些較舊的編程語言不同,ABAP不關(guān)心語句在一行上開始的位置。 您可以利用這一點,并通過使用縮進指示代碼塊來提高程序的可讀性。

  • ABAP對語句的布局沒有限制。 也就是說,可以在單個行上放置多個語句,或者單個語句可以跨多個行擴展。

冒號表示法

如果每個語句的開頭是相同的,則連續(xù)語句可以鏈接在一起。 這時使用冒號(:)運算符和逗號,可以用于終止單個語句,就像句點結(jié)束正常語句。

下面是一個程序的例子,可以保存一些關(guān)鍵字符-

WRITE 'Hello'. 
WRITE 'ABAP'. 
WRITE 'World'. 

使用冒號表示法,可以這樣重寫 

WRITE: 'Hello', 
       'ABAP', 
       'World'.

像任何其他ABAP語句,布局沒有關(guān)系。 這是一個同樣正確的聲明 :

WRITE: 'Hello', 'ABAP', 'World'.

注釋

內(nèi)聯(lián)注釋可以通過以下兩種方法之一在程序中的任何位置聲明:

  • 通過在行的第一個位置放置星號(*)來指示全行注釋,在這種情況下,整個行被系統(tǒng)認為是注釋。 注釋不需要以句點終止,因為它們可能不會跨越多個行延伸。

* This is the comment line
  • 部分行注釋通過在語句之后輸入雙引號(“)來表示,雙引號后面的所有文本都被系統(tǒng)視為注釋。您無需在一段時間內(nèi)終止部分行注釋,因為它們不能跨越更多 比一條線。 

WRITE 'Hello'. "Here is the partial comment

注意 - 注釋代碼未由ABAP編輯器大寫。

抑制空白

NO-ZERO命令在DATA語句之后。 它抑制包含空格的數(shù)字字段的所有前導零。 輸出通常更容易讓用戶閱讀。

例子

REPORT Z_Test123_01. 

DATA: W_NUR(10) TYPE N.
      MOVE 50 TO W_NUR.
      WRITE W_NUR NO-ZERO.

上面的代碼產(chǎn)生以下輸出 -

50

注意 - 沒有NO-ZERO命令,輸出為:0000000050

空白線

SKIP命令有助于在頁面上插入空行。

例子

消息命令如下:

WRITE 'This is the 1st line'. 
SKIP. 
WRITE 'This is the 2nd line'. 

上述消息命令產(chǎn)生以下輸出

This is the 1st line 
This is the 2nd line

我們可以使用SKIP命令插入多個空白行。

SKIP number_of_lines. 

輸出將是由線數(shù)定義的幾個空白行。 SKIP命令還可以將光標定位在頁面上所需的行上。

SKIP TO LINE line_number. 

此命令用于在頁面上上下動態(tài)移動光標。 通常,在此命令后發(fā)出WRITE語句,將輸出放在所需的行上。

插入線

ULINE命令自動在輸出插入一條水平線。 也可以控制線的位置和長度。 語法很簡單:

ULINE.

例子

消息命令如下:

WRITE 'This is Underlined'.
ULINE.

上面的代碼產(chǎn)生以下輸出:

This is Underlined (and a horizontal line below this).

消息

MESSAGE命令顯示由程序開始處REPORT語句中指定的消息ID定義的消息。 消息ID是一個2字符代碼,用于定義在使用MESSAGE命令時程序?qū)⒃L問的1000個消息的集合。

消息編號從000到999.與每個數(shù)字相關(guān)聯(lián)的消息文本最多為80個字符。 調(diào)用消息號時,將顯示相應的文本。

以下是用于Message命令的字符。

信息類型后果
EError消息出現(xiàn),應用程序在當前點暫停。 如果程序在后臺模式下運行,則作業(yè)將被取消,并且消息將記錄在作業(yè)日志中。
WWarning將出現(xiàn)該消息,用戶必須按Enter鍵才能繼續(xù)應用程序。 在后臺模式下,消息將記錄在作業(yè)日志中。
IInformation將打開一個彈出窗口,其中包含消息文本,用戶必須按Enter鍵才能繼續(xù)。 在后臺模式下,消息將記錄在作業(yè)日志中。
AAbend此消息類將取消用戶當前正在使用的事務(wù)。
SSuccess這會在屏幕底部提供一條信息性消息。 顯示的信息是正性的,它只是為用戶反饋。 該消息不以任何方式阻礙程序。
XAbort此消息中止程序并生成ABAP短轉(zhuǎn)儲。

錯誤消息通常用于阻止用戶做不應該做的事情。 警告消息通常用于提醒用戶他們的行動的后果。 信息消息給用戶有用的信息。

例子

當我們?yōu)橄?chuàng)建消息時,ID AB,MESSAGE命令 - MESSAGE E011給出以下輸出:

EAB011 This report does not support sub-number summarization.


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號