
- SAP ABAP 教程
- SAP ABAP - 首頁
- SAP ABAP - 概述
- SAP ABAP - 環境
- SAP ABAP - 螢幕導航
- SAP ABAP - 基本語法
- SAP ABAP - 資料型別
- SAP ABAP - 變數
- SAP ABAP - 常量和字面量
- SAP ABAP - 運算子
- SAP ABAP - 迴圈控制
- SAP ABAP - 決策
- SAP ABAP - 字串
- SAP ABAP - 日期和時間
- SAP ABAP - 資料格式化
- SAP ABAP - 異常處理
- SAP ABAP - 字典
- SAP ABAP - 資料域
- SAP ABAP - 資料元素
- SAP ABAP - 表格
- SAP ABAP - 結構
- SAP ABAP - 檢視
- SAP ABAP - 搜尋幫助
- SAP ABAP - 鎖物件
- SAP ABAP - 模組化
- SAP ABAP - 子程式
- SAP ABAP - 宏
- SAP ABAP - 函式模組
- SAP ABAP - 包含程式
- SAP ABAP - Open SQL 概述
- SAP ABAP - Native SQL 概述
- SAP ABAP - 內部表
- SAP ABAP - 建立內部表
- ABAP - 填充內部表
- SAP ABAP - 複製內部表
- SAP ABAP - 讀取內部表
- SAP ABAP - 刪除內部表
- SAP ABAP - 面向物件
- SAP ABAP - 物件
- SAP ABAP - 類
- SAP ABAP - 繼承
- SAP ABAP - 多型
- SAP ABAP - 封裝
- SAP ABAP - 介面
- SAP ABAP - 物件事件
- SAP ABAP - 報表程式設計
- SAP ABAP - 對話程式設計
- SAP ABAP - 智慧表單
- SAP ABAP - SAPscript
- SAP ABAP - 客戶出口
- SAP ABAP - 使用者出口
- SAP ABAP - 業務附加功能(Business Add-Ins)
- SAP ABAP - Web Dynpro
- SAP ABAP 有用資源
- SAP ABAP - 問答
- SAP ABAP - 快速指南
- SAP ABAP - 有用資源
- SAP ABAP - 討論
SAP ABAP - 基本語法
語句
ABAP 源程式由註釋和 ABAP 語句組成。每個 ABAP 語句都以一個關鍵字開頭,以句點結尾,並且 ABAP **不**區分大小寫。
程式中的第一個非註釋行以 REPORT 關鍵字開頭。報表始終是建立的任何可執行程式的第一行。該語句後跟之前建立的程式名稱。然後,該行以句點結束。
語法如下:
REPORT [Program_Name]. [Statements…].
這允許語句在編輯器中佔用任意多行。例如,REPORT 語句可能如下所示:
REPORT Z_Test123_01.
語句由一個命令以及任何變數和選項組成,以句點結束。只要句點出現在語句的末尾,就不會出現問題。正是這個句點標誌著語句的結束位置。
讓我們編寫程式碼。
在 REPORT 語句下面的行中,只需鍵入以下語句:WRITE 'ABAP Tutorial'。
REPORT Z_Test123_01. Write 'This is ABAP Tutorial'.
編寫語句時需要考慮的四件事:
WRITE 語句將引號中的內容寫入輸出視窗。
ABAP 編輯器將所有文字轉換為大寫,但用單引號括起來的文字字串除外。
與一些較舊的程式語言不同,ABAP 不關心語句在一行中從何處開始。您可以利用這一點並透過使用縮排表示程式碼塊來提高程式的可讀性。
ABAP 對語句的佈局沒有限制。也就是說,可以在一行上放置多個語句,或者一個語句可以跨越多行。
冒號表示法
如果每個語句的開頭相同,則可以將連續的語句連結在一起。這可以透過使用冒號 (:) 運算子和逗號來完成,這些運算子用於終止各個語句,就像句點結束普通語句一樣。
以下是一個可以節省一些按鍵操作的程式示例:
WRITE 'Hello'. WRITE 'ABAP'. WRITE 'World'.
使用冒號表示法,可以將其重寫為:
WRITE: 'Hello', 'ABAP', 'World'.
與任何其他 ABAP 語句一樣,佈局無關緊要。這是一個同樣正確的語句:
WRITE: 'Hello', 'ABAP', 'World'.
註釋
內聯註釋可以透過以下兩種方法之一在程式中的任何位置宣告:
整行註釋透過在行的第一個位置放置星號 (*) 來指示,在這種情況下,系統認為整行都是註釋。註釋不需要以句點結尾,因為它們不能跨越多行:
* This is the comment line
部分行註釋透過在語句後輸入雙引號 (") 來指示。雙引號後的所有文字都被系統視為註釋。您不需要以句點結束部分行註釋,因為它們不能跨越多行:
WRITE 'Hello'. "Here is the partial comment
注意:ABAP 編輯器不會將註釋程式碼大寫。
抑制空格
NO-ZERO 命令位於 DATA 語句之後。它會抑制包含空格的數字欄位的所有前導零。輸出通常更容易讓人閱讀。
示例
REPORT Z_Test123_01. DATA: W_NUR(10) TYPE N. MOVE 50 TO W_NUR. WRITE W_NUR NO-ZERO.
以上程式碼產生以下輸出:
50
注意:如果沒有 NO-ZERO 命令,輸出為:0000000050
空行
SKIP 命令有助於在頁面上插入空行。
示例
MESSAGE 命令如下所示:
WRITE 'This is the 1st line'. SKIP. WRITE 'This is the 2nd line'.
以上 MESSAGE 命令產生以下輸出:
This is the 1st line This is the 2nd line
我們可以使用 SKIP 命令插入多行空行。
SKIP number_of_lines.
輸出將是空行數定義的若干行空行。SKIP 命令還可以將游標定位在頁面上的所需行上。
SKIP TO LINE line_number.
此命令用於動態地向上和向下移動頁面上的游標。通常,在此命令之後會出現 WRITE 語句以在該所需行上放置輸出。
插入線條
ULINE 命令會在輸出中自動插入一條橫線。也可以控制線條的位置和長度。語法非常簡單:
ULINE.
示例
MESSAGE 命令如下所示:
WRITE 'This is Underlined'. ULINE.
以上程式碼產生以下輸出:
This is Underlined (and a horizontal line below this).
訊息
MESSAGE 命令顯示由程式開頭 REPORT 語句中指定的 message ID 定義的訊息。message ID 是一個 2 個字元的程式碼,用於定義程式在使用 MESSAGE 命令時將訪問的 1000 條訊息集中哪一組。
訊息編號從 000 到 999。每個編號都關聯一個最多 80 個字元的訊息文字。當呼叫訊息編號時,將顯示相應的文字。
以下是可與 MESSAGE 命令一起使用的字元:
訊息 | 型別 | 後果 |
---|---|---|
E | 錯誤 | 訊息出現,應用程式在其當前點停止。如果程式在後臺模式下執行,則作業將被取消,並且訊息將記錄在作業日誌中。 |
W | 警告 | 訊息出現,使用者必須按 Enter 鍵才能使應用程式繼續。在後臺模式下,訊息將記錄在作業日誌中。 |
I | 資訊 | 一個彈出視窗開啟,顯示訊息文字,使用者必須按 Enter 鍵才能繼續。在後臺模式下,訊息將記錄在作業日誌中。 |
A | 異常結束 | 此訊息類取消使用者當前正在使用的交易。 |
S | 成功 | 這在螢幕底部提供一條資訊訊息。顯示的資訊本質上是積極的,僅用於使用者反饋。訊息不會以任何方式妨礙程式。 |
X | 中止 | 此訊息會中止程式並生成 ABAP 短轉儲。 |
錯誤訊息通常用於阻止使用者執行他們不應該執行的操作。警告訊息通常用於提醒使用者其操作的後果。資訊訊息向用戶提供有用的資訊。
示例
當我們為訊息 ID AB 建立訊息時,MESSAGE 命令 - MESSAGE E011 會產生以下輸出:
EAB011 This report does not support sub-number summarization.