ABAP 程序的几个结构

举报
雨绸缪 发表于 2023/07/31 17:12:07 2023/07/31
【摘要】 介绍一般的 ABAP 程序包括以下几个结构:标题全局声明处理逻辑可重用区块的定义 标题标题部分提供关于开发的详细信息,它是所有定制 ABAP 开发的标准模板。ABAP 程序的第一条语句以单词 PROGRAM 或 REPORT 开始。提及程序名称并不是强制性的,但为了文件的目的,应使用ABAP程序的正确名称。当用户创建一个程序时,系统默认插入第一条 ABAP 语句:模块池:PROGRAM <...

介绍

一般的 ABAP 程序包括以下几个结构:

  • 标题
  • 全局声明
  • 处理逻辑
  • 可重用区块的定义

标题

标题部分提供关于开发的详细信息,它是所有定制 ABAP 开发的标准模板。ABAP 程序的第一条语句以单词 PROGRAMREPORT 开始。提及程序名称并不是强制性的,但为了文件的目的,应使用ABAP程序的正确名称。

当用户创建一个程序时,系统默认插入第一条 ABAP 语句:

  • 模块池:PROGRAM <name of program>
  • 可执行程序:REPORT <name of report>

全局定义

全局声明声明了所有全局变量,一般体现在*TOP* 头文件中

处理逻辑

处理逻辑块是用来实现业务逻辑的,它是为声明而写的。

可重用块的定义

你可以一次性定义可重用的组件,并且可以在需要业务逻辑的地方调用组件。

创建 ABAP 程序的前提条件:

  1. 每个 SAP ABAP 程序都应该有一个名称,并且应该以字母 Y 或 Z 开头。从 A 到 X 的字母是为 SAP 程序保留的
  2. 标题:程序的描述
  3. 类型:ABAP程序的类型有-可执行程序、Include 文件和模块池程序
  4. 包:包是一个必须创建和存储程序的地方。在实时包是为每个模块/子模块创建的,但不是个人。

程序语法特点

  1. ABAP 编程语言不区分大小写。但它对空间敏感,它应该在编程词之间有空格。
  2. 每个 ABAP 语句都应以句号(.)结束。
  3. 程序名称不应包含特殊字符,如 " - ,空格等。
  4. 程序名称应该是唯一的,描述长度不超过 30 个字符。

基本的报表

ABAP 报表是指输出数据的程序,如果说报表程序,则应了解它是检索和列出数据的程序。从业务方面很容易理解,但我们通常所做的大约一半的工作是基于数据采集和查询的。

例如,您可以根据预算查询实际值或检查其他人输入的值。 在会计工作方面,财务报表的编制也可以说是“查询和获取数据”并将其编制成报告的工作。

通过一个名为 REPORT 的程序实现的:

REPORT ZREPORT2 
LINE-SIZE 75 
LINE-COUNT 30(3) 
NO STANDARD PAGE HEADING. 
Tables: MARA. 
TYPES: Begin of itab, 

  MATNR TYPE MARA-MATNR, 
  MBRSH TYPE MARA-MBRSH, 
  MEINS TYPE MARA-MEINS, 
  MTART TYPE MARA-MTART, 

End of itab. 

DATA: wa_ma TYPE itab,
      it_ma TYPE STANDARD TABLE OF itab.
		
SELECT-OPTIONS: MATS FOR MARA-MATNR OBLIGATORY. 

INITIALIZATION. 
  MATS-LOW = '1'. 
  MATS-HIGH = '500'. 
  APPEND MATS. 

AT SELECTION-SCREEN. .
IF MATS-LOW = ' '. 
  MESSAGE I000(ZKMESSAGE). 
  ELSEIF MATS-HIGH = ' '. 
  MESSAGE I001(ZKMESSAGE). 
ENDIF. 

TOP-OF-PAGE. 
  WRITE:/ 'CLASSICAL REPORT CONTAINING GENERAL MATERIAL DATA  
  FROM THE TABLE MARA' COLOR 7. 
  ULINE. 
  WRITE:/ 'MATERIAL' COLOR 1, 

  24 'INDUSTRY' COLOR 2, 
  38 'UNITS' COLOR 3, 
  53 'MATERIAL TYPE' COLOR 4. 
  ULINE. 
END-OF-PAGE. 

START-OF-SELECTION. 

  SELECT MATNR MBRSH MEINS MTART FROM MARA  
  INTO TABLE it_ma WHERE MATNR IN MATS. 

LOOP AT it_ma into wa_ma. 
  WRITE:/  wa_ma-MATNR, 
  25 wa_ma-MBRSH, 
  40 wa_ma-MEINS, 
  55 wa_ma-MTART. 
ENDLOOP. 

END-OF-SELECTION. 
  ULINE. 
  WRITE:/ 'CLASSICAL REPORT HAS BEEN CREATED' COLOR 7.
  ULINE. 
  SKIP. 
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。