本人實施了北京炎黃盈動的BPM及OA系統,主要目標是對業務流程進行控制和管理,加快Oracle JDE的業務前端錄單速度和彌補JDE在流程控制方面的不足,實現BPM數據能與JDE無縫互相結合,經過3個多月的開發,基本上實現了這個目標。
但是AWS本身也有缺陷,主要表現在表單設計和打印格式設計方面,無法實現類似Excel方式的靈活復雜格式表單、表頭表尾重復打印、安裝用戶定義的紙張打印等等,我們的銷售前端需要按照一種特殊的紙張打印,打印機的標準紙張里沒有,這些功能要求是上線所必須的,但是AWS的開發人員在其系統內部根本無法完成。
考慮到FineReport在表單設計打印方面的極大的靈活易用性,我們故而使用FineReprot和AWS結合完成這個任務。
效果—— AWS銷售打印表單

開發配置
系統集成:把FineReport集成到AWS服務的目錄下。AWS安裝在linux系統中,找到AWS的WEB服務目錄WEBAPPS, 把Finereport目錄下的WebReport目錄拷貝到該目錄下,即可實現與AWS同一主機的WEB報表,不需要對AWS配置做任何改變,報表修改后上傳覆蓋即可。集成后的訪問方式為:http://192.168.1.10:8099/WebReport/ReportServer?reportlet=aws/xiaoshoudan.cpt和AWS的地址主機http://192.168.1.10:8099/portal/一致。
報表開發
創建報表數據源、開發報表及格式不講了,大家可以到帆軟官網(www.finereport.com)和幫助文檔(www.finereporthelp.com)上自己去看,很簡單的。
部署報表到AWS服務器
把Finereport目錄下的WebReport目錄拷貝到AWS服務器 AWS目錄下Webapps下。
表單集成
表單集成的關鍵是從AWS表單向FineReport報表傳遞一個流水號的參數,然后調用FineReport報表打印,從AWS實現這個目標有多種方案,主要包括表單鏈接和JAVA鏈接兩種,經過多次試驗和開發,選擇了比較簡單易于維護的表單鏈接方案。
該方案實施過程如下:
1、在AWS表單上新增打印按鈕和選擇打印格式的下拉框;

2、在AWS表單中新增Javascript函數,用Javascript創建在新窗口打開的一個Frame ,并使用這個Frame的source URL參數傳遞FineReport報表的地址并傳遞AWS流水號參數給報表;

增加的Javascript內容:
<scripttype="text/javascript">
varmapwin;
functionquery()
{
// create the window on the first click andreuse on subsequent clicks
varsid=document.getElementsByName("AWSFLOWID")[0].value;
//獲取參數AWS流程號;
varobj=document.getElementById("dyxz");
//獲取報表格式;
var xzz=obj.value;
varurl="http://"+window.location.host+"/WebReport/ReportServer?reportlet=aws/xiaoshoudan";
//FineReport報表的URL部分
url=url+xzz+".cpt";
//URL 加上報表格式部分,實現了5種格式的報表鏈接,構成完整的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報表
mapwin = new Ext.Window({
layout:'fit',
title: '銷售單打印',
closeAction:'hide',width:1000,
height:800,html:h,y:30
});
}
mapwin.show();}
</script>
3、從AWS中運行程序,調用FineReport報表,實現表單按要求格式打印。
4、銷售錄單后,點打印表單