codecamp

SAP ABAP 基本语法

语句

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

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

语法是 -

REPORT [Program_Name]. 
 
[Statements…]. 

这允许语句根据需要在编辑器中占用尽可能多的行。 例如,REPORT可能看起来像这样 -

REPORT Z_Test123_01. 

语句包括命令和任何以句点结尾的变量和选项。 只要句点出现在语句的结尾,就不会出现问题。 正是这个时期,标志着声明的完成。

让我们编写代码。

在REPORT语句下面的行,只需键入以下语句:写“ABAP Tutorial"。

REPORT Z_Test123_01.

Write 'This is ABAP Tutorial'. 

撰写语句时需要考虑的四件事: 

  • 写语句将引号中的任何内容写入输出窗口。

  • 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命令时程序将访问的1000个消息的集合。

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

以下是用于Message命令的字符。

信息类型后果
EError消息出现,应用程序在当前点暂停。 如果程序在后台模式下运行,则作业将被取消,并且消息将记录在作业日志中。
WWarning将出现该消息,用户必须按Enter键才能继续应用程序。 在后台模式下,消息将记录在作业日志中。
IInformation将打开一个弹出窗口,其中包含消息文本,用户必须按Enter键才能继续。 在后台模式下,消息将记录在作业日志中。
AAbend此消息类将取消用户当前正在使用的事务。
SSuccess这会在屏幕底部提供一条信息性消息。 显示的信息是正性的,它只是为用户反馈。 该消息不以任何方式阻碍程序。
XAbort此消息中止程序并生成ABAP短转储。

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

例子

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

EAB011 This report does not support sub-number summarization.


SAP ABAP 屏幕导航
SAP ABAP 数据类型
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }