ABAP報表簡單示例

2021-06-17 21:22:42 字數 3738 閱讀 8012

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. 

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. 

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 報表的事件

一,首先介紹一下 abap 的程式的型別 program type 程式型別 introductory statement 型別描述 1 report 報表 m program 螢幕程式 f function pool 函式組 k class pool 類組 j class pool 介面組 t t...

ABAP報表的事件

一,首先介紹一下abap的程式的型別 program type 程式型別 introductory statement 型別描述 1 report 報表 m program 螢幕程式 f function pool 函式組 k class pool 類組 j class pool 介面組 t typ...

ABAP 報表開發例項

在這裡示範乙個例項,講講abap開發報表的簡單過程。程式的正確與 否我們不與討論,我們只關心這個程式的編寫過程。首先,在任何程式的開始階段,我們都要確定將會用到的表。我們所講的這個程式 是查詢採購訂單是否完成的。將會用到以下三個表 ekko,ekpo,eket。程式的開頭為 report test....