`
chenzan2010
  • 浏览: 18266 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

ABAP 报表开发实例

阅读更多

在这里我给初学者示范一个实例,讲讲abap开发报表的简单过程。程序的正确与
否我们不与讨论,我们只关心这个程序的编写过程。
首先,在任何程序的开始阶段,我们都要确定将会用到的表。我们所讲的这个程序
是查询采购订单是否完成的。将会用到以下三个表:EKKO,EKPO,EKET。
程序的开头为:
REPORT  TEST.
TABLES:  EKKO,EKET,EKPO.
现在我们已经定义了所要用到的表,接下来的工作就是定义内表和数据。内表是
用来存储我们从上述三个表中查询到的数据。相关定义如下:
DATA: BEGIN OF ITAB OCCURS 0,
          EBELN LIKE EKKO-EBELN,
          MENGE LIKE EKPO-MENGE,
          WEMNG LIKE EKET-WEMNG,
     END OF ITAB.
现在我们已经定义完了内表ITAB。接着我们该定义数据了。数据就像C语言里的
常量。其相关定义如下:
DATA: MATNR  LIKE EKPO-MATNR,
     MENGE  LIKE EKPO-MENGE,
     WEMNG  LIKE EKET-WEMNG,
     EBELN  LIKE EKPO-EBELN.
到这里我们已经把程序里要用到的数据和内表都定义好了。接着我们要做的工作
就是选择屏幕。所谓选择屏幕是指程序运行时,你要从屏幕上输入的内容。比如
说一个程序运行时,你输入一个物料号,就可以得到该物料的当前的库存数,那
你就要编写一个屏幕以供查询者输入查询的条件。其相关定义如下:
SELECT-OPTIONS:     EBELN1 FOR  EKKO-EBELN,
                    BEDAT FOR  EKKO-BEDAT,
                    EKGRP FOR  EKKO-EKGRP.
PARAMETERS: R1 RADIOBUTTON GROUP RADI,
            R2 RADIOBUTTON GROUP RADI,
            R3 RADIOBUTTON GROUP RADI.
现在我们已经完成了程序的前期准备,接着就开始真正的到表里查询我们需要的
相关数据了。其代码如下:
SELECT  K~EBELN
         INTO CORRESPONDING FIELDS OF TABLE ITAB
                FROM EKKO AS K
      WHERE   K~EBELN IN EBELN1
        AND   K~BEDAT IN BEDAT
        AND   K~EKGRP IN EKGRP.

LOOP AT ITAB.
   SELECT SUM( MENGE ) INTO ITAB-MENGE
         FROM EKPO
              WHERE EBELN EQ ITAB-EBELN.
         MODIFY ITAB.
ENDLOOP.

LOOP AT ITAB.
   SELECT SUM( WEMNG ) INTO ITAB-WEMNG
         FROM EKET
              WHERE EBELN EQ ITAB-EBELN.
         MODIFY ITAB.
ENDLOOP.
然后我们需要定义输出界面。把我们查询到的数据输出时要有一个输出的格式,
这样大家看起来才会方便。代码如下:
TOP-OF-PAGE .
   WRITE: /'采购凭证号',22 '物料号码',
           47 '采购订单数量',77  '收到货物数量',
           95 '完成标志'.
      ULINE AT /1(130).
END-OF-PAGE .

       START-OF-SELECTION.
最后就是把我们查到的数据输出了。其实我举的这个程序到这一步时穿插了
一些查询,所以比较长。代码如下:
  IF R1 = 'X'.
LOOP AT ITAB.
            SELECT S~MATNR S~MENGE P~WEMNG S~EBELN
              INTO (MATNR, MENGE, WEMNG, EBELN)
    FROM EKPO AS S INNER JOIN EKET AS P
                           ON S~EBELP = P~EBELP AND S~EBELN = P~EBELN
                   WHERE S~EBELN = ITAB-EBELN.
    IF ITAB-MENGE > ITAB-WEMNG.
            WRITE: /2 EBELN,23 MATNR,41 MENGE,
                    71 WEMNG,97 '否'.
          ULINE AT /1(130).
            CLEAR: EBELN,MATNR,MENGE,WEMNG.
    ENDIF.
            ENDSELECT.
ENDLOOP.

    ELSEIF R2 = 'X'.
LOOP AT ITAB.
             SELECT S~MATNR S~MENGE P~WEMNG S~EBELN
              INTO (MATNR, MENGE, WEMNG, EBELN)
      FROM EKPO AS S INNER JOIN EKET AS P
                           ON S~EBELP = P~EBELP AND S~EBELN = P~EBELN
                   WHERE S~EBELN = ITAB-EBELN.
    IF  ITAB-MENGE <= ITAB-WEMNG.
             WRITE: /2 EBELN,23 MATNR,41 MENGE,
                    71 WEMNG,97 '是'.
             ULINE AT /1(130).
            CLEAR: EBELN,MATNR,MENGE,WEMNG.
    ENDIF.
             ENDSELECT.
ENDLOOP.

    ELSE.
LOOP AT ITAB.

           SELECT S~MATNR S~MENGE P~WEMNG S~EBELN
              INTO (MATNR, MENGE, WEMNG, EBELN)
    FROM EKPO AS S INNER JOIN EKET AS P
                           ON S~EBELP = P~EBELP AND S~EBELN = P~EBELN
                   WHERE S~EBELN = ITAB-EBELN.
    IF ITAB-MENGE > ITAB-WEMNG.
            WRITE: /2 EBELN, 23 MATNR,41 MENGE,
                    71 WEMNG,97 '否'.
          ULINE AT /1(130).
            CLEAR: EBELN,MATNR,MENGE,WEMNG.
    ENDIF.
            ENDSELECT.
  ENDLOOP.
ENDIF.

LOOP AT ITAB.
IF R3 = 'X' AND ITAB-MENGE <= ITAB-WEMNG.
           SELECT S~MATNR S~MENGE P~WEMNG S~EBELN
              INTO (MATNR, MENGE, WEMNG, EBELN)
    FROM EKPO AS S INNER JOIN EKET AS P
                           ON S~EBELP = P~EBELP AND S~EBELN = P~EBELN
                   WHERE S~EBELN = ITAB-EBELN.
       WRITE: /2 EBELN,23 MATNR,41 MENGE,
                    71 WEMNG,97 '是'.
          ULINE AT /1(130).
            CLEAR: EBELN,MATNR,MENGE,WEMNG.
            ENDSELECT.
        ENDIF.
ENDLOOP.
这时程序就结束了。其实举这个例子是想让大家知道ABAP开发报表的一个常规
流程,并不是讲什么技巧之类的,希望能对初学者有点用。抛砖引玉!

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    ABAP报表开发实例.pdf

    ABAP报表开发实例 本文主要讲解了ABAP报表开发的实例,通过一个简单的示例程序,讲解了ABAP开发报表的基本过程。 首先,在任何程序的开始阶段,我们都要确定将会用到的表。在这个示例程序中,我们将用到三个表:...

    abap报表程序事例,学习报表

    本篇将通过两个简单的报表程序示例,深入探讨ABAP报表的开发和理解,帮助初学者掌握其基本概念和编程技巧。 首先,我们需要了解ABAP报表的基本结构。一个标准的ABAP报表由几个主要部分组成:报告头(REPORT),数据...

    ABAP编程开发实例详解

    在“ABAP编程开发实例详解”这个资源中,我们预计会找到一系列实践性的教程,帮助开发者深入理解ABAP语言的核心概念、语法结构以及在实际业务场景中的应用。 1. **ABAP基础** ABAP的基础包括数据类型、变量声明、...

    ABAP QUERY报表开发

    本文将详细介绍ABAP QUERY报表开发的步骤和相关截图实例。 报表开发步骤 1. 输入TCD SQ03,进入报表开发界面,输入用户组描述,点击保存。 2. 在报表开发步骤中,输入用户名,点击保存,退出。输入TCD SQ02,输入...

    《SAP ABAP开发技术详解(实例篇)(第二版)mobi 版

    《SAP ABAP开发技术详解(实例篇)(第二版) [1] 》除了对对SAP ABAP开发所需的常用技术(SAP报表、批量导入、对话程序、函数)做了详尽的介绍,包括基本报表、交互式报表、复杂报表、ALV(SAP List Viewer)报表、...

    sapabap开发从入门到精通

    《SAP ABAP开发从入门到精通》以应用实例的形式,讲解了SAPABAP开发的相关知识点,详细介绍了SAPABAP开发者必须掌握的包与变更传输系统(CTS)、数据类型、数据库、模块化程序、内表、调试、ABAP数据字典、锁对象、...

    BSP报表开发实例(HTML)

    【BSP报表开发实例(HTML)】 BSP(Business Server Pages)是SAP提供的一种用于构建Web应用程序的技术,它允许开发者使用ABAP语言创建动态网页。在这个实例中,我们将了解如何通过BSP来开发一个简单的HTML报表,并...

    ABAP常用开发技术讲义[整理].pdf

    5. QUERY报表:QUERY报表适用于简单的查询报表开发,无需具有ABAP编程知识,但又提供了写ABAP代码的功能,对于一些简单的、无太多计算逻辑或判断逻辑的报表,推荐用其开发。开发工具为SQ01、SQ02、SQ03。 6. REPORT...

    sap_abap 典型实例

    9. **报表开发**: 在描述中提到的“报表”是SAP ABAP应用的重点。通过学习如何使用ABAP SQL和ALV,开发者可以创建各种类型的报告,包括实时查询、统计分析和管理报表。 10. **调试和测试**: ABAP提供了强大的...

    SAP ABAP开发从入门到精通

    《SAP ABAP开发从入门到精通》以应用实例的形式,讲解了SAP ABAP开发的相关知识点,详细介绍了SAP ABAP开发者必须掌握的包与变更传输系统(CTS)、数据类型、数据库、模块化程序、内表、调试、ABAP数据字典、锁对象...

    abap4.0实例程序开发

    在“ABAP 4.0实例程序开发”中,我们将深入探讨这个版本的ABAP编程技术和实践。 一、ABAP概述 ABAP是在1980年代为R/2系统开发的,随着时间的推移,它不断进化,到了ABAP 4.0,已经成为一个功能强大的面向对象的编程...

    abap 开发实例

    ABAP报表(REPORT)是ABAP中最常见的应用形式,用于生成各种业务报告。报表可以基于标准表或视图,也可以通过SQL查询动态获取数据。 七、增强与自定义 SAP系统允许用户通过增强(Enhancement)功能对标准功能进行...

    ABAP report报表文件上传下载

    ### ABAP Report报表文件上传与下载技术解析 #### 概述 ABAP(Advanced Business Application Programming)是SAP系统中的核心编程语言之一,主要用于开发、维护SAP应用程序。本文将详细解析ABAP环境下如何实现报告...

    实战SAP程序开发(ABAP实例讲解)

    - 创建简单的ABAP报表,展示如何从数据库中提取数据并显示。 - 使用Function Module,理解其作用和调用方式。 - 编写Class和Object,体验面向对象编程的优势。 - 实现BADI(Business Add-In),理解SAP的扩展机制。 ...

    《SAP ABAP开发详解与高端应用》.zip

    5. **报表编程**:ABAP报表是最早的开发形式,用于生成打印输出或屏幕显示。它们通常包含输入屏幕、处理逻辑和输出格式化。 6. **模块化编程**:ABAP支持子程序、函数模块和类的使用,这些是模块化编程的基础。这...

    实战sap程序开发——从实例学sap abap编程

    3. ABAP报表编程:学习如何使用ABAP编写交互式报表,从数据库查询数据,进行数据处理并显示结果。 4. ABAP数据库通信:了解如何使用SELECT语句访问数据库表,以及如何使用UPDATE语句更新数据。 5. ABAP函数模块:...

    SAP ABAP Query 开发步骤

    这个工具简化了报表开发过程,使非程序员也能快速生成定制化的数据报告,对于日常数据分析和决策支持非常有帮助。在实践中,结合SAP的其他模块和工具,如BW(Business Warehouse)或Web Intelligence,可以进一步...

Global site tag (gtag.js) - Google Analytics