SAP ABAP – 报表编程
SAP ABAP – 报表编程
一个报告是数据的有组织结构的介绍。许多数据库管理系统包括一个报告编写器,使您能够设计和生成报告。SAP 应用程序支持报告创建。
经典报告是通过在循环内使用 WRITE 语句中的输出数据创建的。它们不包含任何子报告。SAP 还提供了一些标准报告,例如用于跨客户端复制表的 RSCLTCOP 和用于显示实例参数的 RSPARAM。
这些报告仅包含一个屏幕作为输出。我们可以使用INITIALIZATON & TOP-OF-PAGE等各种事件来创建经典报表,每个事件在经典报表创建过程中都有自己的重要性。这些事件中的每一个都与特定的用户操作相关联,并且仅在用户执行该操作时触发。
以下是描述事件和描述的表格 –
S.No. | 事件和描述 |
---|---|
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 的一般材料数据 –