SAP ABAP 基础语法
语句
ABAP 源程序由注释和 ABAP 语 句组成。ABAP 中的每条语句都以关键字开头,以句点结尾,ABAP 不区分大小写。
程序中的第一个非注释行以单词 REPORT
开头。REPORT
将始终是创建的任何可执行程序的第一行。该语句后面是先前创建的程序名。然后,以句号终止。
语法如下:
REPORT [Program_Name].
[Statements…].
语句根据需要在编辑器中占用尽可能多的行。例如,REPORT
可能如下所示:
REPORT Z_Test123_01.
语句由命令、变量和选项组成,以句点结尾。只要句点出现在报表末尾,就不会出现任何问题。因为句点标志着语句的结束。
让我们编写代码。
在 REPORT
语句下面的一行,输入以下语句:Write 'ABAP Tutorial'
。
REPORT Z_Test123_01.
Write 'This is ABAP Tutorial'.
编写语句时有 4 点需要注意:
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
抑制空白
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).
Messages
MESSAGE
命令显示由程序开头的 REPORT
语句中指定的消息 ID 定义的消息。消息 ID 是一个 2 个字符的代码,用于定义使用消息命令时程序将访问的 1000 条消息集。
消息编号从 000 到 999。与每个数字关联的是最多 80 个字符的消息文本。调用消息编号时,将显示相应的文本。
以下是用于消息命令的字符:
消息 | 类型 | 结果 |
---|---|---|
E | Error | 这个消息出现时应用程序会在其当前点停止。如果程序在后台模式下运行,作业将被取消,消息将记录在作业日志中。 |
W | Warning | 当显示这个消息,用户必须按 Enter 键才能继续应用程序。在后台模式下,消息记录在作业日志中。 |
I | Information | 将打开一个弹出窗口,其中显示消息文本,用户必须按 Enter 键才能继续。在后台模式下,消息记录在作业日志中。 |
A | Abend | 此消息类取消用户当前使用的事务。 |
S | Success | 这将在屏幕底部提供信息性的消息。所显示的信息本质上是正面(成功)的,仅供用户反馈该消息不会以任何方式阻碍程序执行。 |
X | Abort | 此消息 中止 程序并生成 ABAP 的短 Dump。 |
Error
消息通常用于阻止用户做他们不应该做的事情。Warning
消息通常用于提醒用户其操作的后果。而 Information
消息为用户提供有用的信息。实例
当我们为 ID AB 的消息创建消息时,MESSAGE
命令 - MESSAGE E011
给出以下输出:
EAB011 This report does not support sub-number summarization.