ABAP源程序由注釋和ABAP語(yǔ)句組成。 ABAP中的每個(gè)語(yǔ)句都以關(guān)鍵字開(kāi)頭,以句點(diǎn)結(jié)尾,ABAP不區(qū)分大小寫(xiě)。
程序中的第一個(gè)非注釋行以單詞REPORT開(kāi)頭。 報(bào)告將始終是創(chuàng)建的任何可執(zhí)行程序的第一行。 該語(yǔ)句后面是以前創(chuàng)建的程序名稱(chēng)。 然后用一個(gè)?.
?終止該行。
語(yǔ)法是 -
REPORT [Program_Name]. [Statements…].
這允許語(yǔ)句根據(jù)需要在編輯器中占用盡可能多的行。 例如,REPORT可能看起來(lái)像這樣 -
REPORT Z_Test123_01.
語(yǔ)句包括命令和任何以句點(diǎn)結(jié)尾的變量和選項(xiàng)。 只要句點(diǎn)出現(xiàn)在語(yǔ)句的結(jié)尾,就不會(huì)出現(xiàn)問(wèn)題。 正是這個(gè)時(shí)期,標(biāo)志著聲明的完成。
讓我們編寫(xiě)代碼。
在REPORT語(yǔ)句下面的行,只需鍵入以下語(yǔ)句:寫(xiě)“ABAP Tutorial"。
REPORT Z_Test123_01. Write 'This is ABAP Tutorial'.
撰寫(xiě)語(yǔ)句時(shí)需要考慮的四件事:
寫(xiě)語(yǔ)句將引號(hào)中的任何內(nèi)容寫(xiě)入輸出窗口。
ABAP編輯器將所有文本轉(zhuǎn)換為大寫(xiě),除了由單引號(hào)包圍的文本字符串。
與一些較舊的編程語(yǔ)言不同,ABAP不關(guān)心語(yǔ)句在一行上開(kāi)始的位置。 您可以利用這一點(diǎn),并通過(guò)使用縮進(jìn)指示代碼塊來(lái)提高程序的可讀性。
ABAP對(duì)語(yǔ)句的布局沒(méi)有限制。 也就是說(shuō),可以在單個(gè)行上放置多個(gè)語(yǔ)句,或者單個(gè)語(yǔ)句可以跨多個(gè)行擴(kuò)展。
如果每個(gè)語(yǔ)句的開(kāi)頭是相同的,則連續(xù)語(yǔ)句可以鏈接在一起。 這時(shí)使用冒號(hào)(:)運(yùn)算符和逗號(hào),可以用于終止單個(gè)語(yǔ)句,就像句點(diǎn)結(jié)束正常語(yǔ)句。
下面是一個(gè)程序的例子,可以保存一些關(guān)鍵字符-
WRITE 'Hello'. WRITE 'ABAP'. WRITE 'World'.
使用冒號(hào)表示法,可以這樣重寫(xiě)
WRITE: 'Hello', 'ABAP', 'World'.
像任何其他ABAP語(yǔ)句,布局沒(méi)有關(guān)系。 這是一個(gè)同樣正確的聲明 :
WRITE: 'Hello', 'ABAP', 'World'.
內(nèi)聯(lián)注釋可以通過(guò)以下兩種方法之一在程序中的任何位置聲明:
通過(guò)在行的第一個(gè)位置放置星號(hào)(*)來(lái)指示全行注釋?zhuān)谶@種情況下,整個(gè)行被系統(tǒng)認(rèn)為是注釋。 注釋不需要以句點(diǎn)終止,因?yàn)樗鼈兛赡懿粫?huì)跨越多個(gè)行延伸。
* This is the comment line
部分行注釋通過(guò)在語(yǔ)句之后輸入雙引號(hào)(“)來(lái)表示,雙引號(hào)后面的所有文本都被系統(tǒng)視為注釋。您無(wú)需在一段時(shí)間內(nèi)終止部分行注釋?zhuān)驗(yàn)樗鼈儾荒芸缭礁?/span> 比一條線(xiàn)。
WRITE 'Hello'. "Here is the partial comment
注意 - 注釋代碼未由ABAP編輯器大寫(xiě)。
NO-ZERO命令在DATA語(yǔ)句之后。 它抑制包含空格的數(shù)字字段的所有前導(dǎo)零。 輸出通常更容易讓用戶(hù)閱讀。
REPORT Z_Test123_01. DATA: W_NUR(10) TYPE N. MOVE 50 TO W_NUR. WRITE W_NUR NO-ZERO.
上面的代碼產(chǎn)生以下輸出 -
50
注意 - 沒(méi)有NO-ZERO命令,輸出為:0000000050
SKIP命令有助于在頁(yè)面上插入空行。
消息命令如下:
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.
輸出將是由線(xiàn)數(shù)定義的幾個(gè)空白行。 SKIP命令還可以將光標(biāo)定位在頁(yè)面上所需的行上。
SKIP TO LINE line_number.
此命令用于在頁(yè)面上上下動(dòng)態(tài)移動(dòng)光標(biāo)。 通常,在此命令后發(fā)出WRITE語(yǔ)句,將輸出放在所需的行上。
ULINE命令自動(dòng)在輸出插入一條水平線(xiàn)。 也可以控制線(xiàn)的位置和長(zhǎng)度。 語(yǔ)法很簡(jiǎn)單:
ULINE.
消息命令如下:
WRITE 'This is Underlined'. ULINE.
上面的代碼產(chǎn)生以下輸出:
This is Underlined (and a horizontal line below this).
MESSAGE命令顯示由程序開(kāi)始處REPORT語(yǔ)句中指定的消息ID定義的消息。 消息ID是一個(gè)2字符代碼,用于定義在使用MESSAGE命令時(shí)程序?qū)⒃L(fǎng)問(wèn)的1000個(gè)消息的集合。
消息編號(hào)從000到999.與每個(gè)數(shù)字相關(guān)聯(lián)的消息文本最多為80個(gè)字符。 調(diào)用消息號(hào)時(shí),將顯示相應(yīng)的文本。
以下是用于Message命令的字符。
信息 | 類(lèi)型 | 后果 |
---|---|---|
E | Error | 消息出現(xiàn),應(yīng)用程序在當(dāng)前點(diǎn)暫停。 如果程序在后臺(tái)模式下運(yùn)行,則作業(yè)將被取消,并且消息將記錄在作業(yè)日志中。 |
W | Warning | 將出現(xiàn)該消息,用戶(hù)必須按Enter鍵才能繼續(xù)應(yīng)用程序。 在后臺(tái)模式下,消息將記錄在作業(yè)日志中。 |
I | Information | 將打開(kāi)一個(gè)彈出窗口,其中包含消息文本,用戶(hù)必須按Enter鍵才能繼續(xù)。 在后臺(tái)模式下,消息將記錄在作業(yè)日志中。 |
A | Abend | 此消息類(lèi)將取消用戶(hù)當(dāng)前正在使用的事務(wù)。 |
S | Success | 這會(huì)在屏幕底部提供一條信息性消息。 顯示的信息是正性的,它只是為用戶(hù)反饋。 該消息不以任何方式阻礙程序。 |
X | Abort | 此消息中止程序并生成ABAP短轉(zhuǎn)儲(chǔ)。 |
錯(cuò)誤消息通常用于阻止用戶(hù)做不應(yīng)該做的事情。 警告消息通常用于提醒用戶(hù)他們的行動(dòng)的后果。 信息消息給用戶(hù)有用的信息。
當(dāng)我們?yōu)橄?chuàng)建消息時(shí),ID AB,MESSAGE命令 - MESSAGE E011給出以下輸出:
EAB011 This report does not support sub-number summarization.
更多建議: