ABAP 基本语法

语句

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命令的字符。

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

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

EAB011 This report does not support sub-number summarization.

参考自W3CSchool文章

### ABAP 基础语法教程 #### 什么是ABAPABAP(Advanced Business Application Programming)是一种专为SAP软件设计的编程语言,主要用于企业级应用系统的开发和定制[^1]。 #### 数据类型 在ABAP中,数据类型的定义是非常重要的一步。通过`DATA`关键字可以声明变量并指定其类型。常见的内置数据类型包括但不限于字符型、数值型以及日期时间型等[^2]。 #### 注释方式 ABAP支持多种注释方法来提高代码可读性和维护性: - 使用星号(`*`)置于行首以整行为注释。 - 英文双引号(`"`)可用于同一行中的任何位置之后添加注释内容。 - 多行注释可以通过快捷键 `Ctrl+,` 实现;而移除这些注释则需使用 `Ctrl+.` 来完成操作[^3]。 #### 输出命令 WRITE 是最常用的输出指令之一,在实际运用中有几个要点需要注意: - `'/'` 表示新起一行进行打印; - `'.'` 结束当前语句,这是必需的部分; - SKIP 插入空行功能可以根据需求调整数量; - ULINE 则用来绘制水平线分隔不同部分的数据展示效果。 以下是简单的例子演示如何利用上述提到的功能实现多字段分行显示: ```abap REPORT demo_write_statement. START-OF-SELECTION. WRITE: / 'First Name:', sy-uname, / 'System ID:' , sy-sysid . ULINE. WRITE:/ 'This will be printed on next line after underline'. ``` #### 子程序调用 对于复杂逻辑处理或者重复使用的模块化编码实践来说,创建子程序非常有用。PERFORM语句用于执行已定义好的形式参数列表内的过程块。例如下面这个案例展示了带参情况下的具体写法[^4]: ```abap FORM calculate_bonus USING emp_salary TYPE p CHANGING bonus_amount TYPE p. ... ENDFORM. PERFORM calculate_bonus USING iv_emp_salary CHANGING ev_bonus_amt. ``` #### 定义结构体 当需要管理一组关联属性的时候,就可以考虑采用STRUCTURE概念构建自定义复合对象模型。这里给出了一段关于物料信息记录的例子说明怎样去描述这样的关系实体[^5]: ```abap DATA: BEGIN OF item OCCURS 0, matnr LIKE mara-matnr, "Material Number werks LIKE marc-werks, "Plant Code END OF item. ``` 以上就是针对初学者整理的一些核心知识点介绍,希望对你有所帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值