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
廣告