- SAP ABAP 教程
- SAP ABAP - 首页
- SAP ABAP - 概述
- SAP ABAP - 环境
- SAP ABAP - 屏幕导航
- SAP ABAP - 基本语法
- SAP ABAP - 数据类型
- SAP ABAP - 变量
- SAP ABAP - 常量 & 字面量
- SAP ABAP - 运算符
- SAP ABAP - 循环控制
- SAP ABAP - 决策
- SAP ABAP - 字符串
- SAP ABAP - 日期 & 时间
- SAP ABAP - 数据格式化
- SAP ABAP - 异常处理
- SAP ABAP - 字典
- SAP ABAP - 域
- SAP ABAP - 数据元素
- SAP ABAP - 表格
- SAP ABAP - 结构
- SAP ABAP - 视图
- SAP ABAP - 搜索帮助
- SAP ABAP - 锁对象
- SAP ABAP - 模块化
- SAP ABAP - 子程序
- SAP ABAP - 宏
- SAP ABAP - 函数模块
- SAP ABAP - 包含程序
- SAP ABAP - Open SQL 概述
- SAP ABAP - Native SQL 概述
- SAP ABAP - 内部表
- SAP ABAP - 创建内部表
- ABAP - 填充内部表
- SAP ABAP - 复制内部表
- SAP ABAP - 读取内部表
- SAP ABAP - 删除内部表
- SAP ABAP - 面向对象
- SAP ABAP - 对象
- SAP ABAP - 类
- SAP ABAP - 继承
- SAP ABAP - 多态
- SAP ABAP - 封装
- SAP ABAP - 接口
- SAP ABAP - 对象事件
- SAP ABAP - 报表编程
- SAP ABAP - 对话编程
- SAP ABAP - 智能表单
- SAP ABAP - SAPscript
- SAP ABAP - 客户出口
- SAP ABAP - 用户出口
- SAP ABAP - 业务附加功能
- SAP ABAP - Web Dynpro
- SAP ABAP 有用资源
- SAP ABAP - 问答
- SAP ABAP - 快速指南
- SAP ABAP - 有用资源
- SAP ABAP - 讨论
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 的一般物料数据:
广告