abap開發報表的簡單過程

2022-03-02 04:18:30 字數 3999 閱讀 1587

在這裡我給初學者示範乙個例項,講講abap開發報表的簡單過程。程式的正確與

否我們不與討論,我們只關心這個程式的編寫過程。

首先,在任何程式的開始階段,我們都要確定將會用到的表。我們所講的這個程式

是查詢採購訂單是否完成的。將會用到以下三個表:ekko,ekpo,eket。

程式的開頭為:

program  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。程式的開頭為 report ...

開發報表的先進工具

一款專業的web報表和手機報表開發工具,基於先進的模型和理念,功能強大,實用性強,是報表工具的不二之選。先進模型和理念 許多複雜報表採用傳統報表技術製作起來非常困難 需要編寫 或複雜 sql 準備資料 而採用非線性模型則可以輕鬆完成,使製作效率大大提高。還有一部分工作是通過傳統報表技術難以實現的,也...

Linux下編寫動態鏈結庫的簡單過程

1 使用編譯選項 fpic 產生與位置無關的 2 使用編譯選項 fvisibility hidden 隱藏符號 3 使用鏈結選項 shared 表示生成動態鏈結庫 4 使用鏈結選項 wl 將引數傳遞給鏈結器 5 使用鏈結選項 soname 指定庫名,注意不是庫檔名 6 保險起見,顯式鏈結 c 庫,即...