SAP ABAP 基本語法

2021-12-24 11:42 更新

語句

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

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

語法是 -

REPORT [Program_Name]. 
 
[Statements…]. 

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

REPORT Z_Test123_01. 

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

讓我們編寫代碼。

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

REPORT Z_Test123_01.

Write 'This is ABAP Tutorial'. 

撰寫語句時(shí)需要考慮的四件事: 

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

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

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

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

冒號表示法

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

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

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

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

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

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

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

注釋

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

  • 通過在行的第一個(gè)位置放置星號(*)來指示全行注釋,在這種情況下,整個(gè)行被系統(tǒng)認(rèn)為是注釋。 注釋不需要以句點(diǎn)終止,因?yàn)樗鼈兛赡懿粫缭蕉鄠€(gè)行延伸。

* This is the comment line
  • 部分行注釋通過在語句之后輸入雙引號(“)來表示,雙引號后面的所有文本都被系統(tǒng)視為注釋。您無需在一段時(shí)間內(nèi)終止部分行注釋,因?yàn)樗鼈儾荒芸缭礁?/span> 比一條線。 

WRITE 'Hello'. "Here is the partial comment

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

抑制空白

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

例子

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命令插入多個(gè)空白行。

SKIP number_of_lines. 

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

SKIP TO LINE line_number. 

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

插入線

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

ULINE.

例子

消息命令如下:

WRITE 'This is Underlined'.
ULINE.

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

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

消息

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

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

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

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

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

例子

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

EAB011 This report does not support sub-number summarization.


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號