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....