1. FS
FineReport.js 中除了包含 FineReport 屬性和方法之外,還包含了決策系統相關的屬性和方法。
報表中的 Web 事件、控件事件、JavaScript 類型的超級鏈接、決策報表事件中都可以通過 window.parent.FS 來獲得 FS 對象。
1.1 FS.signOut()
該方法可以登出數據決策系統。
1)PC 端登出數據決策系統
模板中添加事件調用該方法,将模板挂載到決策平台目錄,預覽模板執行該事件,會自動退出登錄,返回決策平台登錄界面。JavaScript 代碼如下:
window.location.href = window.parent.FS.signOut();
注:需要在決策系統中打開該模板,否則會報錯。
2)App 端登出數據決策系統
模板中添加事件調用該方法,移動端預覽模板執行該事件,會自動退出登錄,返回 App 端數據決策系統登錄界面,詳細介紹參見文檔:JS實現登出App ,JavaScript 代碼如下:
FR.logoutApp();
1.2 FS.tabPane.closeActiveTab()
該方法可以關閉數據決策的标簽頁,JavaScript 代碼如下:
window.parent.FS.tabPane.closeActiveTab();
注:因爲報表在 iframe 裏,先獲取當前 window.parent 後然後再找到 FS。
1.3 FS.tabPane.addItem
該方法可以在數據決策系統中打開新标簽頁,JavaScript 代碼如下:
window.parent.FS.tabPane.addItem({title:"baidu",src:"http://www.baidu.com"})
參數 entry 說明:
參數 | 類型 | 說明 |
---|---|---|
entry | Object | 必填,tab 項對應的 entry 對象 |
entry 以 json 格式提供,屬性如下表所示:
屬性 | 類型 | 說明 |
---|---|---|
title | String | 标簽頁的标題 |
src | String | 标簽頁的内容指向的地址 |
2. 示例
前面兩個接口很簡單,這裏不再舉例說明,下面詳細介紹一下第三個接口,即在數據決策系統中打開一個新 Tab 頁。
數據鑽取是使用超級鏈接實現,打開方式有三種,當前窗口,對話框,新窗口。
前面兩種方式很好理解,第三種在新窗口中打開,即在浏覽器端打開一個新的 Tab 頁面。
如果是在數據決策系統中使用,希望實現在決策系統框架下新增一個 Tab 頁簽,而不是在浏覽器端重新打開一個窗口,這個該怎麽實現呢?
注:還可通過安裝插件實現平台内打開新标簽,詳情可參考:平台内打開新标簽
2.1 打開模板
下面以 %FR_HOME%\demo\basic\數據鑽取主報表.cpt 爲例,該模板中實現了在當前窗口的鑽取功能,下面将在當前窗口打開替換成在新的 Tab 頁面中打開。
2.2 超級鏈接
實現效果:将「訂單明細」的鑽取修改成在數據決策中打開一個新的 Tab 頁面,新 Tab 頁面的标題爲「訂單明細」。
打開模板,選中 A5 單元格,在右側屬性面板中選擇超級鏈接,添加一個 JavaScript 腳本類型的超級鏈接。
添加參數 ID,參數值爲當前單元格的值,即公式 $$$ 。如下圖所示:
JavaScript 代碼如下:
window.parent.FS.tabPane.addItem({title:"訂單明細",src:"${servletURL}?viewlet=demo/basic/數據鑽取子報表訂單明細.cpt&訂單号="+ID})
title:模板名稱
src:模板路徑
注:src 最後的 & 符号爲參數的傳遞,即将當前單元格的值傳遞給參數 ID,然後再 src 的路徑後面拼接字符串,将 ID 參數的值傳遞給需要打開的新模板中的訂單号參數。
2.3 效果預覽
注:需要在決策平台中打開該模板,否則會提示錯誤。
3. 注意事項
如果将 FineReport 報表工程集成到 FineBI 中使用,登錄 FS 需要注冊決策平台功能點。
注冊 FineReport 功能點的介紹詳情參見:本地機器信息認證