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.
广告