SAP ABAP 基础语法

语句

ABAP 源程序由注释和 ABAP 语 句组成。ABAP 中的每条语句都以关键字开头,以句点结尾,ABAP 不区分大小写

程序中的第一个非注释行以单词 REPORT 开头。REPORT 将始终是创建的任何可执行程序的第一行。该语句后面是先前创建的程序名。然后,以句号终止。

语法如下:

  1. REPORT [Program_Name].
  2. [Statements…].

语句根据需要在编辑器中占用尽可能多的行。例如,REPORT 可能如下所示:

  1. REPORT Z_Test123_01.

语句由命令、变量和选项组成,以句点结尾。只要句点出现在报表末尾,就不会出现任何问题。因为句点标志着语句的结束。

让我们编写代码。

REPORT 语句下面的一行,输入以下语句:Write 'ABAP Tutorial'

  1. REPORT Z_Test123_01.
  2. Write 'This is ABAP Tutorial'.

编写语句时有 4 点需要注意:

  • Write 语句将引号中的内容写入输出窗口。
  • ABAP 编辑器将所有文本转换为大写,但文本字符串除外,文本字符串由单引号括起。
  • 与一些旧的编程语言不同,ABAP 不关心语句在一行上的起始位置。您可以利用这一点,通过使用缩进指示代码块来提高程序的可读性。
  • ABAP 对语句的布局没有限制。也就是说,多条语句可以放在一行上,或者一条语句可以横跨多行。

冒号符号

如果每个语句的开头相同,则可以将连续语句链接在一起。这是通过冒号(:)运算符和逗号完成的,它们用于终止各个语句,就像句点结束普通语句一样。

下面是一个实例:

  1. WRITE 'Hello'.
  2. WRITE 'ABAP'.
  3. WRITE 'World'.

可以使用冒号的方式重写语句:

  1. WRITE: 'Hello',
  2. 'ABAP',
  3. 'World'.

与其他任何 ABAP 语句一样,布局并不重要。下面也是一种正确的语句写法:

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

注释

内联注释可以通过以下两种方法之一在程序中的任何位置声明:

  • 整行注释通过在行的第一个位置放置星号(*)来表示,在这种情况下,系统将整行视为注释。注释不需要以句点结束,因为它们不能跨多行:
  1. * This is the comment line
  • 部分行注释通过在语句后输入双引号(“”)来表示。双引号后的所有文本都被系统视为注释。部分行注释不需要以句点结束,因为它们也不能跨多行:
  1. WRITE 'Hello'. "Here is the partial comment
注意:ABAP 编辑器不会将注释代码大写。

抑制空白

NO-ZERO 命令位于 DATA 语句之后。它抑制包含空格的数字字段的所有前置零。这种输出方式通常更具有可读性。

实例
  1. REPORT Z_Test123_01.
  2. DATA: W_NUR(10) TYPE N.
  3. MOVE 50 TO W_NUR.
  4. WRITE W_NUR NO-ZERO.

上述代码生成以下输出:

  1. 50
注意:没有 NO-ZERO 命令的情况下, 输出结果将为: 0000000050

空白行

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

实例

消息命令如下:

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

上述消息命令生成以下输出:

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

我们可以使用 SKIP 命令插入多个空行。

  1. SKIP number_of_lines.

输出将是由行数定义的多个空行。SKIP 命令还可以将光标定位在页面上所需的行上。

  1. SKIP TO LINE line_number.

此命令用于在页面上下动态移动光标。通常,在该命令之后会出现 WRITE 语句,以将输出放在所需的行上。


插入行

ULINE 命令会自动在输出上插入一条水平线。还可以控制线路的位置和长度。

语法非常简单:

  1. ULINE.
实例

消息命令如下:

  1. WRITE 'This is Underlined'.
  2. ULINE.

结果如下:

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

Messages

MESSAGE 命令显示由程序开头的 REPORT 语句中指定的消息 ID 定义的消息。消息 ID 是一个 2 个字符的代码,用于定义使用消息命令时程序将访问的 1000 条消息集。

消息编号从 000999。与每个数字关联的是最多 80 个字符的消息文本。调用消息编号时,将显示相应的文本。

以下是用于消息命令的字符:

消息类型结果
EError这个消息出现时应用程序会在其当前点停止。如果程序在后台模式下运行,作业将被取消,消息将记录在作业日志中。
WWarning当显示这个消息,用户必须按 Enter 键才能继续应用程序。在后台模式下,消息记录在作业日志中。
IInformation将打开一个弹出窗口,其中显示消息文本,用户必须按 Enter 键才能继续。在后台模式下,消息记录在作业日志中。
AAbend此消息类取消用户当前使用的事务。
SSuccess这将在屏幕底部提供信息性的消息。所显示的信息本质上是正面(成功)的,仅供用户反馈该消息不会以任何方式阻碍程序执行。
XAbort此消息 中止 程序并生成 ABAP 的短 Dump
Error 消息通常用于阻止用户做他们不应该做的事情。Warning 消息通常用于提醒用户其操作的后果。而 Information 消息为用户提供有用的信息。
实例

当我们为 ID AB 的消息创建消息时,MESSAGE 命令 - MESSAGE E011 给出以下输出:

  1. EAB011 This report does not support sub-number summarization.