1. 概述
1.1 問題描述
FR 雖然有內建工具欄,但是位置與樣式比較死,只能固定在報表上方或下方,不靈活。
使用者系統已經自己定義了一套工具欄按鈕,頁面中只需要嵌入報表內容,不使用 FR 的工具欄,如下圖,使用者自己系統裏面自訂的列印與匯出按鈕,放在頁面中報表部分之外,如果需要列印報表,點選自訂的按鈕,就可呼叫 FR 的列印方法進行列印。那麼這種效果該如何實現呢?
1.2 實現思路
如果報表嵌在網頁的 iframe 中,首先透過document.getElementById('報表所在iframe的id')獲取 iframe 物件,再獲取 contentWindow,最後使用API。
如報表嵌入在 ID 為 reportFrame 的 iframe 中,那麼可以透過下面格式的 JS 程式碼,呼叫 FR 內建工具欄的所有方法:
document.getElementById('reportFrame').contentWindow._g().方法名稱();
如報表嵌入在 iframe 的 ID為"reportFrame"時,呼叫報表的填報提交API,程式碼如下:
document.getElementById('reportFrame').contentWindow._g().writeReport();
2. contentPane 下所有工具欄按鈕事件及說明
按鈕名稱 | 方法名稱 | 說明 |
---|---|---|
首頁 | gotoFirstPage() | 跳轉到第一頁 |
末頁 | gotoLastPage() | 跳轉到最後一頁 |
上一頁 | gotoPreviousPage() | 跳轉到上一頁 |
下一頁 | gotoNextPage() | 跳轉到下一頁 |
跳轉到指定頁 | gotoPage(num) | 跳轉到指定 num 頁 |
零用戶端列印 | noClientPrint(popupMarginSetup, ieQuietPrint) | popupMarginSetup:是否彈出設定視窗,true 為彈出,false 為不彈出 ieQuietPrint: IE靜默列印設定 true 為靜默,false 為不靜默 |
本地列印 | newNativePrint(popupDialog, serverURL) | popupDialog:是否彈出設定視窗,true 為彈出,false 為不彈出 serverURL:報表所在的伺服器地址,例如 http://localhost:8080 |
pdf匯出 | exportReportToPDF() | pdf 匯出 |
word匯出 | exportReportToWord() | word 匯出 |
excel匯出 | exportReportToExcel('指定格式') | 參數為 page 時分頁匯出;simple 原樣匯出;sheet 分頁分 sheet 匯出 |
郵件 | emailReport() | 郵件傳送 |
列印預覽 | printPreview() | iframe 中的報表為分頁預覽或者資料分析時才可以用 |
提交 | writeReport() | 強制提交 |
校驗 | verifyReport() | 資料校驗,只有填報表才可以用 |
校驗並提交 | verifyAndWriteReport() | 先對資料進行校驗,校驗成功則提交資料 |
插入行列 | appendReportRC(num) | 插入 num 行或列,只有填報表才可以用 |
刪除行列 | deleteReportRC() | 刪除行列,只有填報表才可以用 |
匯入excel | importExcel() | 線上匯入 Excel,只有填報表才可以用 |
頁面設定 | pageSetup() | 只有資料分析才可以用 |