一、概述
預覽報表時,報表 servlet 會將 cpt 模板轉為 HTML ,在這個 HTML 的 head 頭部中會引入 FR 的 JavaScript,如下:
<script type="text/javascript" src="/webroot/decision/view/report?op=emb&resource=finereport.js"></script>
這個 finereport.js 中包含了許多內建的 function 以及一些公有的屬性,不管在範本中還是其他網頁中,只要引入了 finereport.js ,就能夠透過 FR.xxx 的形式呼叫公有的屬性與方法。
所有的地方包括 web 頁面事件、元件事件、超鏈 JavaScript、決策報表事件中都可以獲取到 FR 物件。
二、使用例項
1
在範本中使用。
訪問範本時會自動引入 finereport.js,因此在範本的 JavaScript 指令碼中可以直接使用 FR.xxx 來呼叫方法。
新增事件:
此處以顯示對話方塊為例,對元件新增一個「點選」事件,編輯 JavaScript 指令碼,如下圖1所示。
程式碼如下。
效果展示:儲存並填報預覽,點選頁面的"Test"按鈕,會出現一個對話方塊,如下圖2所示。
FR.showDialog("CES",600,400,"CESSSS")
2
在網頁中使用。
如果需要在自己的網頁中呼叫 FR 的方法,需要先引入 finereport.js ,再透過 FR.xxx 來呼叫。
新增程式碼:同上例,新建一個 HTML 檔案新增如下程式碼。
效果展示:把上面的 HTML 保存到%FR_HOME%\webapps\webroot路徑下,用浏覽器訪問此頁面,效果如下圖所示。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>FineReport Demo</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<!-- Include finereport.js -->
<script type="text/javascript" src="/webroot/decision/view/report?op=emb&resource=finereport.js"></script>
<!-- Include finreport.css -->
<link rel="stylesheet" type="text/css" href="/webroot/decision/view/report?op=emb&resource=finereport.css&cssVersion=1591683351598">
</head>
<body>
<input type="button" value="Test" onclick="showDialog();" />
<script>
function showDialog(){
FR.showDialog("CES", 600, 400, "CESSSS");
}
</script>
</body>
</html>
三、FR 常用方法
1
FR.ajax(options)。
說明:傳送 Ajax 請求,具體參考(AJAX)
Parameters:
options JSON:必填,請求參數。
Returns:void。
2
FR.showDialog(title, width, height, innerContent)。
說明:顯示一個對話框。
Parameters:
title:String,標題。
width:Number,對話框寬度。
height:Number,對話框高度。
innerContent:String,對話框內容。
Returns:void。
3
FR.closeDialog()。
說明:關閉對話框。
Parameters:
None。
Returns:void。
4
FR.doHyperLinkByGet(url, para, target, feature)。
說明:超級連結,GET 方式傳遞引數 para 到 target 中,並在 feature 裡面設定視窗屬性。具體參考(連結)。
Parameters:
url:String,必填,跳轉連結。
para:JSON,選填,傳遞參數。
target:String,選填,超連子頁的開啟位置。
feature:JSON,選填,超連開啟位置的屬性。
Returns:void。
5
FR.doHyperLinkByPost(url, para, target, feature)。
說明:超級連結,POST 方式傳遞參數 para 到 target 中,並在 feature 裡面設定視窗屬性。具體參考(連結)。
Parameters:
url:String,必填,跳轉連結。
para:JSON,選填,傳遞參數。
target:String,選填,超連子頁的開啟位置。
feature:JSON,選填,超連開啟位置的屬性。
Returns:void。
6
FR.doURLPrint(config)。
說明:列印,具體參考(JS 調用 FR 打印方法)。
Parameters:
config:JSON,必填,列印設定。
。Returns: void。
7
FR.isArray(object)。
說明:物件是否為陣列,是返回 true,否返回 false。
Parameters:
object:Object,某個物件。
Returns: Boolean。
8
FR.isEmpty(object)。
說明:物件是否為空,是返回 true,否返回 false。
Parameters:
object:Object,某個物件 。
Returns:Boolean。
9
FR.jsonDecode(encodedString)。
說明:對 jsonEncode 過的字串解碼。
Parameters:
encodedString:String,編碼過的字串。
Returns:String。
10
FR.jsonEncode(decodedString)。
說明:對字串進行 jsonEncode 編碼。
Parameters:
decodedString:String,待編碼的字串。
Returns:String。
11
FR.removeEvaluate(formula)。
說明:執行 FR 內建公式,返回公式計算的結果。例如:var a = FR.remoteEvaluate("sum(A1,A2)")表示執行 sum(A1,A2)。
Parameters:
ormula:String,必填,具體公式。
Returns:Object。