SAP ABAP 报表程序
报表 是以有组织的结构表示数据。许多数据库管理系统都包括一个报表编写器,它使您能够设计和生成报表。SAP 应用程序支持报表创建。
传统报表是通过在循环内使用 WRITE
语句中的输出数据创建的。它们不包含任何子报表。SAP 还提供了一些标准报表,例如用于跨客户端复制表的 RSCLTCOP
和用于显示实例参数的 RSPARAM
。
这些报表仅包含一个界面作为输出。我们可以使用各种事件,例如 INITIALIZATON
以及 TOP-OF-PAGE
,在创建传统报表期间,每个事件都有其自身的重要性。这些事件中的每一个都与特定的用户操作相关联,并且仅当用户执行该操作时才会触发。
下表描述了事件和描述:
编号 | 事件 & 描述 |
---|---|
1 | INITIALIZATON 在显示选择界面之前触发。 |
2 | AT SELECTION-SCREEN 在选择界面上处理用户输入后触发此事件在执行程序之前验证用户输入处理用户输入后,选择界面仍处于激活模式。 |
3 | START-OF-SELECTION 仅在选择界面处理结束后触发; 也就是说,当用户单击选择界面上的 Execute 执行图标时。 |
4 | END-OF-SELECTION 在 START-OF-SELECTON 事件中的最后一条语句执行后触发。 |
5 | TOP-OF-PAGE 由第一个 |
6 | END-OF-PAGE 触发以在报表中的页面末尾显示文本。请注意,此事件是创建报表时的最后一个事件,应与报表语句的 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 中的一般材料数据: