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 中的一般材料数据 -
    报告编程