FineReport集成到AWS系統(tǒng)中的方案
Posted on 2015-08-10 10:14 FineReport——報(bào)表技術(shù)領(lǐng)跑者 閱讀(114) 評(píng)論(0) 編輯 收藏本人實(shí)施了北京炎黃盈動(dòng)的BPM及OA系統(tǒng),主要目標(biāo)是對(duì)業(yè)務(wù)流程進(jìn)行控制和管理,加快Oracle JDE的業(yè)務(wù)前端錄單速度和彌補(bǔ)JDE在流程控制方面的不足,實(shí)現(xiàn)BPM數(shù)據(jù)能與JDE無縫互相結(jié)合,經(jīng)過3個(gè)多月的開發(fā),基本上實(shí)現(xiàn)了這個(gè)目標(biāo)。
但是AWS本身也有缺陷,主要表現(xiàn)在表單設(shè)計(jì)和打印格式設(shè)計(jì)方面,無法實(shí)現(xiàn)類似Excel方式的靈活復(fù)雜格式表單、表頭表尾重復(fù)打印、安裝用戶定義的紙張打印等等,我們的銷售前端需要按照一種特殊的紙張打印,打印機(jī)的標(biāo)準(zhǔn)紙張里沒有,這些功能要求是上線所必須的,但是AWS的開發(fā)人員在其系統(tǒng)內(nèi)部根本無法完成。
考慮到FineReport在表單設(shè)計(jì)打印方面的極大的靈活易用性,我們故而使用FineReprot和AWS結(jié)合完成這個(gè)任務(wù)。
效果—— AWS銷售打印表單
開發(fā)配置
系統(tǒng)集成:把FineReport集成到AWS服務(wù)的目錄下。AWS安裝在linux系統(tǒng)中,找到AWS的WEB服務(wù)目錄WEBAPPS, 把Finereport目錄下的WebReport目錄拷貝到該目錄下,即可實(shí)現(xiàn)與AWS同一主機(jī)的WEB報(bào)表,不需要對(duì)AWS配置做任何改變,報(bào)表修改后上傳覆蓋即可。集成后的訪問方式為:http://192.168.1.10:8099/WebReport/ReportServer?reportlet=aws/xiaoshoudan.cpt和AWS的地址主機(jī)http://192.168.1.10:8099/portal/一致。
報(bào)表開發(fā)
創(chuàng)建報(bào)表數(shù)據(jù)源、開發(fā)報(bào)表及格式不講了,大家可以到帆軟官網(wǎng)(www.finereport.com)和幫助文檔(www.finereporthelp.com)上自己去看,很簡單的。
部署報(bào)表到AWS服務(wù)器
把Finereport目錄下的WebReport目錄拷貝到AWS服務(wù)器 AWS目錄下Webapps下。
表單集成
表單集成的關(guān)鍵是從AWS表單向FineReport報(bào)表傳遞一個(gè)流水號(hào)的參數(shù),然后調(diào)用FineReport報(bào)表打印,從AWS實(shí)現(xiàn)這個(gè)目標(biāo)有多種方案,主要包括表單鏈接和JAVA鏈接兩種,經(jīng)過多次試驗(yàn)和開發(fā),選擇了比較簡單易于維護(hù)的表單鏈接方案。
該方案實(shí)施過程如下:
1、在AWS表單上新增打印按鈕和選擇打印格式的下拉框;
2、在AWS表單中新增Javascript函數(shù),用Javascript創(chuàng)建在新窗口打開的一個(gè)Frame ,并使用這個(gè)Frame的source URL參數(shù)傳遞FineReport報(bào)表的地址并傳遞AWS流水號(hào)參數(shù)給報(bào)表;
增加的Javascript內(nèi)容:
<scripttype="text/javascript">
varmapwin;
functionquery()
{
// create the window on the first click andreuse on subsequent clicks
varsid=document.getElementsByName("AWSFLOWID")[0].value;
//獲取參數(shù)AWS流程號(hào);
varobj=document.getElementById("dyxz");
//獲取報(bào)表格式;
var xzz=obj.value;
varurl="http://"+window.location.host+"/WebReport/ReportServer?reportlet=aws/xiaoshoudan";
//FineReport報(bào)表的URL部分
url=url+xzz+".cpt";
//URL 加上報(bào)表格式部分,實(shí)現(xiàn)了5種格式的報(bào)表鏈接,構(gòu)成完整的URL;
if(sid!=null) url=url+"&lsh="+sid;
var h="<iframe name=mainsrc="+url+" frameborder=1 width=100% height=100% scrolling=yesonload=''></iframe>";
if(!mapwin){
// 打開新窗口,鏈接到FineReport報(bào)表
mapwin = new Ext.Window({
layout:'fit',
title: '銷售單打印',
closeAction:'hide',width:1000,
height:800,html:h,y:30
});
}
mapwin.show();}
</script>
3、從AWS中運(yùn)行程序,調(diào)用FineReport報(bào)表,實(shí)現(xiàn)表單按要求格式打印。
4、銷售錄單后,點(diǎn)打印表單