SAP ABAP - 报表编程



报表是以组织化的结构呈现数据的一种方式。许多数据库管理系统都包含报表编写器,使您可以设计和生成报表。SAP 应用程序支持报表创建。

经典报表是通过在循环内部使用 WRITE 语句中的输出数据来创建的。它们不包含任何子报表。SAP 还提供一些标准报表,例如用于跨客户端复制表的 RSCLTCOP 和用于显示实例参数的 RSPARAM。

这些报表仅包含一个屏幕作为输出。我们可以使用各种事件,例如 INITIALIZATON & TOP-OF-PAGE 来创建经典报表,并且每个事件在创建经典报表期间都有其自身的重要性。每个事件都与特定的用户操作相关联,并且仅在用户执行该操作时才会触发。

下表描述了事件和说明:

序号 事件 & 说明
1

INITIALIZATON

在显示选择屏幕之前触发。

2

AT SELECTION-SCREEN

在处理选择屏幕上的用户输入后触发。此事件在程序执行之前验证用户输入。处理用户输入后,选择屏幕保持活动状态。

3

START-OF-SELECTION

仅在选择屏幕处理完成后触发;即,当用户单击选择屏幕上的“执行”图标时。

4

END-OF-SELECTION

在 START-OF-SELECTON 事件中的最后一个语句执行后触发。

5

TOP-OF-PAGE

由第一个 WRITE 语句触发,以在新页面上显示数据。

6

END-OF-PAGE

触发以在报表页面末尾显示文本。请注意,此事件是创建报表的最后一个事件,应与 REPORT 语句的 LINE-COUNT 子句结合使用。

示例

让我们创建一个经典报表。我们将使用 ABAP 编辑器中的一系列语句来显示存储在标准数据库 MARA(包含一般物料数据)中的信息。

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. 

以上代码生成以下输出,其中包含来自标准表 MARA 的一般物料数据:

Report Programming
广告