ABAP源程序由注释和ABAP语句组成。 ABAP中的每个语句都以关键字开头,以句点结尾,ABAP不区分大小写。
程序中的第一个非注释行以单词REPORT开头。 报告将始终是创建的任何可执行程序的第一行。 该语句后面是以前创建的程序名称。 然后用一个满程终止该行。
语法是
REPORT [Program_Name].
[Statements…].
这允许语句根据需要在编辑器中占用尽可能多的行。 例如,REPORT可能看起来像这样 -
REPORT Z_Test01.
语句包括命令和任何以句点结尾的变量和选项。 只要句子出现在语句的结尾,就不会出现问题。 正是这个时期,标志着声明的完成。让我们编写代码。
在REPORT语句下面的行,只需键入以下语句:写“Hello World!"。
REPORT Z_Test01.
Write 'Hello World!'.
写语句将引号中的任何内容写入输出窗口。
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_Test01.
DATA: W_NUR(10) TYPE N.
MOVE 12345678 TO W_NUR.
WRITE W_NUR NO-ZERO.
SKIP命令有助于在页面上插入空行。
例子
消息命令如下:
WRITE '这是第一行'.
SKIP.
WRITE '这是第二行'.
我们可以使用SKIP命令插入多个空白行。
SKIP 5.
输出将是由线数定义的几个空白行。 SKIP命令还可以将光标定位在页面上所需的行上。
SKIP TO LINE line_number.
此命令用于在页面上上下动态移动光标。 通常,在此命令后发出WRITE语句,将输出放在所需的行上。
ULINE命令自动在输出插入一条水平线。 也可以控制线的位置和长度。 语法很简单:
ULINE.
例子
消息命令如下:
WRITE '下面有条下划线'.
ULINE.
MESSAGE命令显示由程序开始处REPORT语句中指定的消息ID定义的消息。 消息ID是一个2字符代码,用于定义在使用MESSAGE命令时程序将访问的1000个消息的集合。
消息编号从000到999.与每个数字相关联的消息文本最多为80个字符。 调用消息号时,将显示相应的文本。
以下是用于Message命令的字符。
信息 | 类型 | 后果 |
---|---|---|
E | Error | 消息出现,应用程序在当前点暂停。 如果程序在后台模式下运行,则作业将被取消,并且消息将记录在作业日志中。 |
W | Warning | 将出现该消息,用户必须按Enter键才能继续应用程序。 在后台模式下,消息将记录在作业日志中。 |
I | Information | 将打开一个弹出窗口,其中包含消息文本,用户必须按Enter键才能继续。 在后台模式下,消息将记录在作业日志中。 |
A | Abend | 此消息类将取消用户当前正在使用的事务。 |
S | Success | 这会在屏幕底部提供一条信息性消息。 显示的信息是正性的,它只是为用户反馈。 该消息不以任何方式阻碍程序。 |
X | Abort | 此消息中止程序并生成ABAP短转储。 |
例子
当我们为消息创建消息时,ID AB,MESSAGE命令 - MESSAGE E011给出以下输出:
EAB011 This report does not support sub-number summarization.
参考自W3CSchool文章