精编报表开发实例计算机嵌入式开发_计算机-嵌入式开发.pdf
精编报表开发实例 Revised by Liu Jing on January 12,2021 ABAP报表开发实例。在这里示范一个实例,讲讲abapff发报表的简单过程。程序的正确与 否我们不与讨论,我们只关心这个程序的编写过程。首先,在任何程序的开始阶段,我们都要确定将会用到的表。我们所讲的这个程 序 是查询采购订单是否完成的。将会用到以下三个表: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.现在我们已经定义完了内表ITABo接着我们该定义数据了。数据就像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 KEBELN INTO CORRESPONDING FIELDS OF TABLE ITAB FROM EKKO AS K WHERE KEBELN IN EBELN1 AND KBEDAT IN BEDAT关心这个程序的编写过程首先在任何程序的开始阶段我们都要确定将会用到的表我们所讲的这个程序是查询采购订单是否完成的将会用到以下三个表程序的开头为现在我们已经定义了所要用到的表接下来的工作就是定义内表和数据了数据就像语言里的常量其相关定义如下到这里我们已经把程序里要用到的数据和内表都定义好了接着我们要做的工作就是选择屏幕所谓选择屏幕是指程序运行时你要从屏幕上输入的内容比如说一个程序运行时你输入一个物料号就完成了程序的前期准备接着就开始真正的到表里查询我们需要的相关数据了其代码如下然后我们需要定义输出界面把我们查询到的数据输出时要有一个输出的格式这样大家看起来才会方便代码如下采购凭证号物料号码采购订单数量AND KEKGRP IN EKGRP.LOOP AT ITAB.SELECT SDK MENGE)INTO ITAB-MENGE FROM EKPO WHERE EBELN EQ ITAB-EBELN.MODIFY ITAB.ENDLOOP.LOOP AT ITAB.SELECT SUM(WEMNG)INTO IL4B-WEMNG FROM EKET WHERE EBELN EQ ITAB-EBELN.MODIFY ITAB.ENDLOOP.然后我们需要定义输出界面。把我们查询到的数据输出时要有一个输出的格式,这样大家看起来才会方便。代码如下:TOP-OF-PAGE.WRITE:r采购凭证号,22 物料号码,47 采购订单数量,77 收到货物数量,关心这个程序的编写过程首先在任何程序的开始阶段我们都要确定将会用到的表我们所讲的这个程序是查询采购订单是否完成的将会用到以下三个表程序的开头为现在我们已经定义了所要用到的表接下来的工作就是定义内表和数据了数据就像语言里的常量其相关定义如下到这里我们已经把程序里要用到的数据和内表都定义好了接着我们要做的工作就是选择屏幕所谓选择屏幕是指程序运行时你要从屏幕上输入的内容比如说一个程序运行时你输入一个物料号就完成了程序的前期准备接着就开始真正的到表里查询我们需要的相关数据了其代码如下然后我们需要定义输出界面把我们查询到的数据输出时要有一个输出的格式这样大家看起来才会方便代码如下采购凭证号物料号码采购订单数量95 完成标志.ULINE AT/l(130).END-0F-PAGE.关心这个程序的编写过程首先在任何程序的开始阶段我们都要确定将会用到的表我们所讲的这个程序是查询采购订单是否完成的将会用到以下三个表程序的开头为现在我们已经定义了所要用到的表接下来的工作就是定义内表和数据了数据就像语言里的常量其相关定义如下到这里我们已经把程序里要用到的数据和内表都定义好了接着我们要做的工作就是选择屏幕所谓选择屏幕是指程序运行时你要从屏幕上输入的内容比如说一个程序运行时你输入一个物料号就完成了程序的前期准备接着就开始真正的到表里查询我们需要的相关数据了其代码如下然后我们需要定义输出界面把我们查询到的数据输出时要有一个输出的格式这样大家看起来才会方便代码如下采购凭证号物料号码采购订单数量最后就是把我们查到的数据输出了。其实我举的这个程序到这一步时穿插了 一些查询,所以比较长。代码如下:IF R1 二X.LOOP AT ITAB.SELECT SMATNR SMENGE PWEMNG SEBELN INTO(MATNR,MENGE,WEMNG,EBELN)FROM EKPO AS S INNER JOIN EKET AS P ON SEBELP=PEBELP AND SEBELN=PEBELN WHERE SEBELN=ITAB-EBELN.IF ITAB-MENGE ITAB-WEMNG.WRITE:/2 EBELN,23 MATNR,41 MENGE,71 WEMNG,97 否.ULINE AT/I(130).CLEAR:EBELN,MATNR,NffiNGE,WEMNG.ENDIF.ENDSELECT.ENDLOOP.ELSEIF R2 二X.LOOP AT ITAB.SELECT SMATNR SMENGE PWEMNG SEBELN 关心这个程序的编写过程首先在任何程序的开始阶段我们都要确定将会用到的表我们所讲的这个程序是查询采购订单是否完成的将会用到以下三个表程序的开头为现在我们已经定义了所要用到的表接下来的工作就是定义内表和数据了数据就像语言里的常量其相关定义如下到这里我们已经把程序里要用到的数据和内表都定义好了接着我们要做的工作就是选择屏幕所谓选择屏幕是指程序运行时你要从屏幕上输入的内容比如说一个程序运行时你输入一个物料号就完成了程序的前期准备接着就开始真正的到表里查询我们需要的相关数据了其代码如下然后我们需要定义输出界面把我们查询到的数据输出时要有一个输出的格式这样大家看起来才会方便代码如下采购凭证号物料号码采购订单数量INTO(MATNR,MENGE,WEMNG,EBELN)FROM EKPO AS S INNER JOIN EKET AS P ON SEBELP=PEBELP AND SEBELN=PEBELN WHERE SEBELN=ITAB-EBELN.IF ITAB-MENGE ITAB-WEMNG.关心这个程序的编写过程首先在任何程序的开始阶段我们都要确定将会用到的表我们所讲的这个程序是查询采购订单是否完成的将会用到以下三个表程序的开头为现在我们已经定义了所要用到的表接下来的工作就是定义内表和数据了数据就像语言里的常量其相关定义如下到这里我们已经把程序里要用到的数据和内表都定义好了接着我们要做的工作就是选择屏幕所谓选择屏幕是指程序运行时你要从屏幕上输入的内容比如说一个程序运行时你输入一个物料号就完成了程序的前期准备接着就开始真正的到表里查询我们需要的相关数据了其代码如下然后我们需要定义输出界面把我们查询到的数据输出时要有一个输出的格式这样大家看起来才会方便代码如下采购凭证号物料号码采购订单数量WRITE:/2 EBELN,23 MATNR,41 MENGE,71 WEMNG,97 否.ULINE AT/I(130).CLEAR:EBELN,MATNR,MENGE,WEMNG.ENDIF.ENDSELECT.ENDLOOP.ENDIF.LOOP AT ITAB.IF R3 二X AND ITAB-MENGE=ITAB-WEMNG.SELECT SMATNR SMENGE PWEMNG SEBELN INTO(MATNR,MENGE,WEMNG,EBELN)FROM EKPO AS S INNER JOIN EKET AS P ON SEBELP=PEBELP AND SEBELN=PEBELN WHERE SEBELN=ITAB-EBELN.WRITE:/2 EBELN,23 N1ATNR,41 MENGE,71 WEMNG,97 是.ULINE AT/I(130).CLEAR:EBELN,MATNR,MENGE,WEMNG.关心这个程序的编写过程首先在任何程序的开始阶段我们都要确定将会用到的表我们所讲的这个程序是查询采购订单是否完成的将会用到以下三个表程序的开头为现在我们已经定义了所要用到的表接下来的工作就是定义内表和数据了数据就像语言里的常量其相关定义如下到这里我们已经把程序里要用到的数据和内表都定义好了接着我们要做的工作就是选择屏幕所谓选择屏幕是指程序运行时你要从屏幕上输入的内容比如说一个程序运行时你输入一个物料号就完成了程序的前期准备接着就开始真正的到表里查询我们需要的相关数据了其代码如下然后我们需要定义输出界面把我们查询到的数据输出时要有一个输出的格式这样大家看起来才会方便代码如下采购凭证号物料号码采购订单数量ENDSELECT.ENDIF.ENDLOOP.这时程序就结束了。其实举这个例子是想让大家知道ABAP开发报表的一个常规 流程,并不是讲什么技巧之类的,希望能对初学者有点用 关心这个程序的编写过程首先在任何程序的开始阶段我们都要确定将会用到的表我们所讲的这个程序是查询采购订单是否完成的将会用到以下三个表程序的开头为现在我们已经定义了所要用到的表接下来的工作就是定义内表和数据了数据就像语言里的常量其相关定义如下到这里我们已经把程序里要用到的数据和内表都定义好了接着我们要做的工作就是选择屏幕所谓选择屏幕是指程序运行时你要从屏幕上输入的内容比如说一个程序运行时你输入一个物料号就完成了程序的前期准备接着就开始真正的到表里查询我们需要的相关数据了其代码如下然后我们需要定义输出界面把我们查询到的数据输出时要有一个输出的格式这样大家看起来才会方便代码如下采购凭证号物料号码采购订单数量