1. 概述
1.1 版本
報表伺服器版本
| 功能變更 |
---|
11.0 | - |
11.0.10 | 新增支援匯出 CSV 類型檔案,支援匯出修改編碼格式 |
1.2 應用場景
新引擎預覽可以有效解決範本預覽慢的問題,但在匯出資料集時還是比較慢,此時文檔方案可以有效解決此問題。
注:此文檔為匯出範本中使用的資料集的資料,並非匯出範本。
1.3 實現思路
匯出資料集較慢,主要是因為需要把所有範本都計算完畢再執行匯出,所以只要新引擎支援大數據集匯出就行了。
透過在工具欄上自訂一個按鈕,輸入自訂 JS 事件即可實現大數據集匯出,可以明顯提升匯出速度。
注:該方法適用於使用新計算引擎的 cpt 範本。
2. 範例一:11.0.10 之前版本
2.1 自訂按鈕
1)開啟範本:%FR_HOME%\webroot\WEB-INF\reportlets\demo\NewbieGuide\行式報表.cpt,範本使用新計算引擎,方法參見文檔:新計算引擎使用
2)菜單欄點選「範本>範本Web屬性」,範本 Web 屬性設定介面選擇「分頁預覽設定>為該範本單獨設定」,如下圖所示:

2)工具欄新增一個自訂按鈕,點選頂部工具欄編輯按鈕,如下圖所示:

3)自訂按鈕重新命名為大數據集匯出,點選「自訂事件」按鈕,如下圖所示:

4)開啟的事件編輯介面,輸入 JS 程式碼即可,如下圖所示:

JS 程式碼如下所示:
var dsName = encodeURIComponent("ds1");
var url = "http://localhost:8075/webroot/decision/url/report/v10/direct/export" + "?sessionID=" + Report.SessionMgr.get() + "&dsName=" + dsName;
var form = $("<form>");
$("body").append(form);
if (url.indexOf('?') !== -1) {
var q = url.substr(url.indexOf('?') + 1);
var qs = q.split('&');
for (var i = 0; i < qs.length; i++) {
var p = qs[i];
var ps = p.split('=');
if (ps.length === 2) {
$('<input/>').attr('name', ps[0]).val(ps[1]).appendTo(form);
}
}
url = url.substring(0, url.indexOf('?'));
} else {
var input = $("<input>");
form.append(input);
}
form.attr({"style": "display : none", "target": "", "method": "post", "action": url});
form.submit();
form.remove();
2.2 效果預覽
儲存報表,點選分頁預覽,匯出效果如下圖所示:

2.3 範本下載
已完成範本可參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\新計算引擎大數據集匯出.cpt
點選下載範本:新計算引擎大數據集匯出.cpt
3. 範例二:11.0.10 及之後版本
3.1 自訂按鈕
1)開啟範本:%FR_HOME%\webroot\WEB-INF\reportlets\demo\NewbieGuide\行式報表.cpt,範本使用新計算引擎,方法參見文檔:新計算引擎使用
2)菜單欄點選「範本>範本Web屬性」,範本 Web 屬性設定介面選擇「分頁預覽設定>為該範本單獨設定」,如下圖所示:

2)工具欄新增一個自訂按鈕,點選頂部工具欄編輯按鈕,如下圖所示:

3)自訂按鈕重新命名為大數據集匯出,點選「自訂事件」按鈕,如下圖所示:

4)開啟的事件編輯介面,輸入 JS 程式碼即可,如下圖所示:

JS 程式碼如下所示:
注:匯出檔案類型為excel時,exportFormat = " ",encodeFormat = " "
var dsName = encodeURIComponent("ds1");
var exportFormat = "csv"
var encodeFormat = "UTF - 8"
var url = "http://localhost:8075/webroot/decision/url/report/v10/direct/export" + "?sessionID=" + Report.SessionMgr.get() + "&dsName=" + dsName + "&exportFormat=" + exportFormat + "&encodeFormat=" + encodeFormat ;
var form = $("<form>");
$("body").append(form);
if (url.indexOf('?') !== -1) {
var q = url.substr(url.indexOf('?') + 1);
var qs = q.split('&');
for (var i = 0; i < qs.length; i++) {
var p = qs[i];
var ps = p.split('=');
if (ps.length === 2) {
$('<input/>').attr('name', ps[0]).val(ps[1]).appendTo(form);
}
}
url = url.substring(0, url.indexOf('?'));
} else {
var input = $("<input>");
form.append(input);
}
form.attr({"style": "display : none", "target": "", "method": "post", "action": url});
form.submit();
form.remove();
3.2 效果預覽
儲存報表,點選分頁預覽,匯出效果如下圖所示:

3.3 範本下載
已完成範本可參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\新計算引擎大數據集匯出範例二.cpt
點選下載範本:新計算引擎大數據集匯出範例二.cpt
4. 其他說明
4.1 帶參數匯出
範例範本:下拉框參數聯動.cpt
若需要範本帶參數匯出,範本可透過參數面板中的參數進行篩選,具體設定請參見:SQL語句實現下拉框參數聯動
自訂按鈕設定如下圖所示:

其他步驟與本文第二章相同,程式碼如下圖所示:
var dsName = encodeURIComponent("ds1");
var url = "http://localhost:8075/webroot/decision/url/report/v10/direct/export" + "?sessionID=" + Report.SessionMgr.get() + "&dsName=" + dsName + "&area=" + a + "&province=" + b + "&city=" + c ;
var form = $("<form>");
$("body").append(form);
if (url.indexOf('?') !== -1) {
var q = url.substr(url.indexOf('?') + 1);
var qs = q.split('&');
for (var i = 0; i < qs.length; i++) {
var p = qs[i];
var ps = p.split('=');
if (ps.length === 2) {
$('<input/>').attr('name', ps[0]).val(ps[1]).appendTo(form);
}
}
url = url.substring(0, url.indexOf('?'));
} else {
var input = $("<input>");
form.append(input);
}
form.attr({"style": "display : none", "target": "", "method": "post", "action": url});
form.submit();
form.remove();