1. 概述
FineReport 開放了大量的 JS API 給用戶,用戶利用這些 JS 接口,可實現更多更複雜的功能。
根據執行 JS 的主體不同可以将 FineReport 的 JS API 分爲三大類:FR、FS、contentWindow。
2. FR
FR:在 JS 語句中執行使用 FR 的方法或者屬性。
例如:FR.Msg.alert,在設計器中可直接使用 FR 中的方法,在外部應用使用 FR 中的方法必須引入 finereport.js。
3. FS
FS:是數據決策系統中的 JS 接口。
例如:FS.tabPane.addItem。
4. contentWindow
contentWindow:是在 Web 頁面集成的時候,将 FineReport 報表嵌入在 iframe 中,調用報表對象時使用的接口。
例如:document.getElementById('reportFrame').contentWindow,其中document.getElementById('reportFrame')是獲取 iframe 對象,contentWindow 是報表對象,相當於 HTML 中的 Window 對象。
4.1 引用 contentWindow
1)在普通模板中
在普通模板的 JS 腳本中可以直接使用 contentWindow 下的屬性,如直接使用 contentWindow中的 contentPane,而不用寫 contentWindow,這是因爲 JavaScript 腳本本身就在FR 模板中執行的。
2)網頁中使用 iframe 嵌入報表
如果文檔包含框架( frame或 iframe 标簽 ),框架中嵌入了 FR 報表,則會創建一個 contentWindow 對象先獲取 iframe,再調用 contentWindow,然後使用 contentWindow 下面的屬性,如下所示:
var contentWindow = document.getElementById("reportFrame").contentWindow.XXX;
4.2 contentWindow 常用屬性
屬性 | 說明 |
---|---|
contentPane | 返回報表容器 |
document | 返回窗口中的文檔 |
location | 返回 location 對象 |
window | 返回窗口對象 |
不論是 Web 頁面集成裏面還是直接在 FR 模板之中,contentWindow 下面最常用的屬性當屬 contentPane,詳細介紹參見下面的索引。