在這裡我給初學者示範乙個例項,講講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開發報表的簡單過程
在這裡我給初學者示範乙個例項,講講abap開發報表的簡單過程。程式的正確與 否我們不與討論,我們只關心這個程式的編寫過程。首先,在任何程式的開始階段,我們都要確定將會用到的表。我們所講的這個程式 是查詢採購訂單是否完成的。將會用到以下三個表 ekko,ekpo,eket。程式的開頭為 program...
c FastReport開發報表
原文 下面看看乙個簡單的例子 1 開啟visual studio 2010建立乙個工程名稱為wfmfastreport,編輯介面,然後新增 fastreport.dll fastreport.bars.dll,fastreport.editor.dll 的引用。非常簡單,如下 using syste...
flex開發報表Report
注意 只能列合併,暫時無法行合併 1.首先建立乙個reportdemo.mxml檔案 creationcomplete init 2.其次建立乙個reportstyle1.xml檔案 reportsettings 18.4261 11.5 1.5true cmtrue false 一聯標題 0.75...