ABAP開發報表

2021-08-30 18:59:28 字數 3735 閱讀 4725

在這裡我給初學者示範乙個例項,講講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...