codecamp

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-SELECTION事件中的最后一条语句之后触发。

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
SAP ABAP 对象事件
SAP ABAP 编程对话
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }