一、概述
隨著FineReport的發(fā)展,它提供的設(shè)計(jì)器和服務(wù)器應(yīng)該能夠滿足您絕大部分的需求,完全實(shí)現(xiàn)零編碼的軟件開發(fā),革命性地加快軟件開發(fā)速度,提高軟件穩(wěn)定性。但是需求是千變?nèi)f化的,而FineReport所包含的功能是報(bào)表行業(yè)中比較普遍的典型的,也許某些個(gè)性化的功能通過FineReport軟件無法實(shí)現(xiàn)。為此,FineReport支持應(yīng)用開發(fā)人員使用網(wǎng)頁腳本、API接口等對FineReport進(jìn)行深入的開發(fā)與控制,以滿足其個(gè)性化的需求。當(dāng)然,如果您發(fā)現(xiàn)您的某個(gè)需求必須要編程來實(shí)現(xiàn),建議您先給我們的顧問打一個(gè)咨詢電話,也許他可以給您提供有一個(gè)不需要編程的簡單方法來滿足您的需求,節(jié)約您的時(shí)間。
在這里,我們主要介紹JS的使用說明,為需要對FineReport報(bào)表進(jìn)行深入開發(fā)的應(yīng)用開發(fā)人員提供參考。
二、JS的使用說明
JavaScript是種腳本語言,它可以用來制作與網(wǎng)絡(luò)無關(guān)的,與用戶交互作用的復(fù)雜軟件。它是一種基于對象(Object Based)和事件驅(qū)動(dòng)(Event Driver)的編程語言。JavaScript是動(dòng)態(tài)的,它可以直接對用戶或客戶輸入做出響應(yīng),無須經(jīng)過Web服務(wù)程序。它對用戶的反映響應(yīng),是采用以事件驅(qū)動(dòng)的方式進(jìn)行的。所謂事件驅(qū)動(dòng),就是指在主頁(Home Page)中執(zhí)行了某種操作所產(chǎn)生的動(dòng)作,就稱為“事件”(Event)。比如按下鼠標(biāo)、移動(dòng)窗口、選擇菜單等都可以視為事件。當(dāng)事件發(fā)生后,可能會(huì)引起相應(yīng)的事件響應(yīng)。
JavaScript是依賴于瀏覽器本身,與操作環(huán)境無關(guān),只要能運(yùn)行瀏覽器的計(jì)算機(jī),并支持JavaScript的瀏覽器就可正確執(zhí)行。即JavaScript源代碼在發(fā)往客戶端執(zhí)行之前不需經(jīng)過編譯,而是將文本格式的字符代碼發(fā)送給客戶編由瀏覽器直接解釋執(zhí)行。
(一)問題描述
FineReport報(bào)表采用jquery v1.5.2框架,jquery是一個(gè)快速的,簡潔的javaScript庫,使用戶能更方便地處理HTML documents、events、實(shí)現(xiàn)動(dòng)畫效果,方便地為網(wǎng)站提供AJAX交互,并且它兼容各種瀏覽器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。FineReport報(bào)表解析后最終成為一個(gè)html頁面,因此可以使用js對報(bào)表進(jìn)行各種處理,您可以使用jQuery框架的所有方法對報(bào)表進(jìn)行操作,在此基礎(chǔ)上,FineReport還封裝了很多內(nèi)置的js方法。接下來我們就JS的基本使用做一個(gè)介紹。
(二)如何使用JS
1、報(bào)表模板中使用JS
設(shè)計(jì)模板時(shí)可以給控件、工具欄按鈕、整個(gè)報(bào)表添加JS事件,每個(gè)事件對應(yīng)一個(gè)function。當(dāng)報(bào)表轉(zhuǎn)為htm頁面時(shí)會(huì)將這些fuction加到html的頭部head。當(dāng)事件被觸發(fā)時(shí)如點(diǎn)擊按鈕時(shí),或者導(dǎo)出打印報(bào)表時(shí),對應(yīng)的function就會(huì)被執(zhí)行。
引入現(xiàn)成的js文件
單個(gè)模板引入外部js文件:分頁預(yù)覽、填報(bào)預(yù)覽或者數(shù)據(jù)分析旁的設(shè)置圖標(biāo),然后點(diǎn)擊引用JavaScript;
報(bào)表工程下所有模板統(tǒng)一引入外部js文件:服務(wù)器>服務(wù)器配置>引用JavaScript。
相對路徑引用js:相對于報(bào)表工程目錄如WebReport,如WebReport\js下有引用的js文件test.js,則相對路徑為js/test.js;絕對路徑引用js:如D:\tomcat\webapps\WebReport\WEB-INF\scripts\script.js。
事件編輯界面
FineReport有統(tǒng)一的事件編輯界面,如按鈕控件設(shè)置>事件編輯>添加點(diǎn)擊事件便可看到事件編輯界面了,如下圖。
.png)
2、自定義頁面中使用JS
如:報(bào)表嵌入在frame的id為"reportFrame"時(shí),調(diào)用報(bà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,可能會(huì)有js沖突,因此建議您通過獲取iframe中的報(bào)表再使用FineReport的js方法。
3、JS語法
(1)普通的JS語法
如在事件編輯里面彈出對話框,使用alert(要彈出內(nèi)容)即可。
(2)jQuery語法
jQuery的基礎(chǔ)語法是:$("tr"),美元符號(hào)$定義 jQuery;選擇符("tr")就可以獲取頁面所在行。
更多jQuery方法請參考其官方jQuery Version 1.5 API文檔。
(3)報(bào)表內(nèi)置的JS方法
如何使用報(bào)表內(nèi)部定義好的js方法,可在事件編輯里面直接調(diào)用,如FR.doURLFlashPrint調(diào)用Flash打印,代碼如下:
1. FR.doURLFlashPrint("http://localhost:8075/WebReport/ReportServer?reportlet=gettingstarted.cpt");
posted on 2012-11-15 11:40
season 閱讀(607)
評論(0) 編輯 收藏 所屬分類:
Java報(bào)表—技術(shù)知識(shí)