java報表工具finereport的JS應(yīng)用聲明
Posted on 2012-10-18 11:05 FineReport——報表技術(shù)領(lǐng)跑者 閱讀(728) 評論(0) 編輯 收藏 所屬分類: Java報表技術(shù)知識FineReport報表采用jquery v1.5.2框架,jQuery是一個快速的,簡潔的javaScript庫,使用戶能更方便地處理HTML documents、events、實現(xiàn)動畫效果,方便地為網(wǎng)站提供AJAX交互,并且它兼容各種瀏覽器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。FineReport報表解析后最終成為一個html頁面,因此可以使用js對報表進行各種處理,您可以使用jQuery框架的所有方法對報表進行操作,在此基礎(chǔ)上,F(xiàn)ineReport還封裝了很多內(nèi)置的js方法。本文就JS的基本使用做一個介紹。
· 作用機理
設(shè)計模板時可以給控件、工具欄按鈕、整個報表添加JS事件,每個事件對應(yīng)一個function。當(dāng)報表轉(zhuǎn)為htm頁面時會將這些fuction加到html的頭部head。當(dāng)事件被觸發(fā)時如點擊按鈕時,或者導(dǎo)出打印報表時,對應(yīng)的function就會被執(zhí)行。
· 引入現(xiàn)成的js文件
單個模板引入外部js文件:分頁預(yù)覽、填報預(yù)覽或者數(shù)據(jù)分析旁的設(shè)置圖標(biāo),然后點擊引用JavaScript;
報表工程下所有模板統(tǒng)一引入外部js文件:服務(wù)器>服務(wù)器配置>引用JavaScript。
相對路徑引用js:相對于報表工程目錄如WebReport,如WebReport\js下有引用的js文件test.js,則相對路徑為js/test.js;
絕對路徑引用js:如D:\tomcat\webapps\WebReport\WEB-INF\scripts\script.js。
· 事件編輯界面
FineReport有統(tǒng)一的事件編輯界面,如按鈕控件設(shè)置>事件編輯>添加點擊事件便可看到事件編輯界面了,如下圖。
· 通過獲取iframe中的報表再使用FineReport的js方法
如:報表嵌入在frame的id為"reportFrame"時,調(diào)用報表的打印預(yù)覽方法,如下:
1. document.getElementById('reportFrame').contentWindow.contentPane.printPreview();
· 引入FineReport的js文件再使用FineReport的js方法
1. <script type="text/javascript" src="/WebReport/ReportServer?op=resource&resource=/com/fr/web/jquery.js"></script>
2. <script type="text/javascript" src="/WebReport/ReportServer?op=emb&resource=finereport.js"></script>
3. <script type='text/javascript'>
4. function doPrint(){
5. var url="http://localhost:8075/WebReport/ReportServer?reportlet=gettingstarted.cpt";//端口和ip根據(jù)具體情況設(shè)定
6. FR.doURLFlashPrint(url);
7. }
8. </script>
注:若該頁面中引入了其他版本的jquery.js,可能會有js沖突,因此建議您通過獲取iframe中的報表再使用FineReport的js方法。
如在事件編輯里面彈出對話框,使用alert(要彈出內(nèi)容)即可。
jQuery的基礎(chǔ)語法是:$("tr"),美元符號$定義 jQuery;選擇符("tr")就可以獲取頁面所在行。
更多jQuery方法請參考其官方jQuery Version 1.5 API文檔。
如何使用報表內(nèi)部定義好的js方法,可在事件編輯里面直接調(diào)用,如FR.doURLFlashPrint調(diào)用Flash打印,代碼如下:
1. FR.doURLFlashPrint("http://localhost:8075/WebReport/ReportServer?reportlet=gettingstarted.cpt");