SAP ABAP - 基本语法


声明

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

程序中的第一个非注释行以 REPORT 一词开头。该报告将始终是所创建的任何可执行程序的第一行。该语句后面是先前创建的程序名称。然后该线路以句号结束。

语法是 -

REPORT [Program_Name]. 
 
[Statements…]. 

这使得语句可以根据需要在编辑器中占用尽可能多的行。例如,报告可能如下所示 -

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 命令有助于在页面上插入空行。

例子

消息命令如下 -

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

上面的消息命令产生以下输出 -

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

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

SKIP number_of_lines. 

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

SKIP TO LINE line_number. 

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

插入行

ULINE 命令自动在输出中插入一条水平线。还可以控制线的位置和长度。语法非常简单 -

ULINE.

例子

消息命令如下 -

WRITE 'This is Underlined'.
ULINE.

上面的代码产生以下输出 -

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

留言

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

这些消息的编号范围为 000 到 999。每个数字都关联一个最多 80 个字符的消息文本。当调用消息号码时,会显示相应的文本。

以下是与消息命令一起使用的字符 -

信息 类型 结果
错误 出现该消息并且应用程序在当前位置停止。如果程序在后台模式下运行,作业将被取消,并且消息将记录在作业日志中。
警告 将出现该消息,用户必须按 Enter 键才能继续应用程序。在后台模式下,消息记录在作业日志中。
信息 将打开一个包含消息文本的弹出窗口,用户必须按 Enter 才能继续。在后台模式下,消息记录在作业日志中。
A 异常结束 该消息类取消用户当前正在使用的事务。
S 成功 这会在屏幕底部提供一条信息消息。显示的信息本质上是积极的,仅供用户反馈。该消息不会以任何方式妨碍程序。
X 中止 此消息中止程序并生成 ABAP 短转储。

错误消息通常用于阻止用户做他们不应该做的事情。警告消息通常用于提醒用户其Behave的后果。信息消息为用户提供有用的信息。

例子

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

EAB011 This report does not support sub-number summarization.