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