反饋已提交
網絡繁忙
新引擎預覽可以有效解決範本預覽慢的問題,但在匯出資料集時還是比較慢,此時文檔方案可以有效解決此問題。
注:此文檔為匯出範本中使用的資料集的資料,並非匯出範本。
匯出資料集較慢,主要是因為需要把所有範本都計算完畢再執行匯出,所以只要新引擎支援大數據集匯出就行了。
透過在工具欄上自訂一個按鈕,輸入自訂 JS 事件即可實現大數據集匯出,可以明顯提升匯出速度。
注:該方法適用於使用新計算引擎的 cpt 範本。
1)開啟範本:%FR_HOME%\webroot\WEB-INF\reportlets\demo\NewbieGuide\行式報表.cpt,範本使用新計算引擎,方法參見文檔:新計算引擎使用
2)菜單欄點選「範本>範本Web屬性」,範本 Web 屬性設定介面選擇「分頁預覽設定>為該範本單獨設定」,如下圖所示:
2)工具欄新增一個自訂按鈕,點選頂部工具欄編輯按鈕,如下圖所示:
3)自訂按鈕重新命名為大數據集匯出,點選「自訂事件」按鈕,如下圖所示:
4)開啟的事件編輯介面,輸入 JS 程式碼即可,如下圖所示:
JS 程式碼如下所示:
// 需要匯出的資料集名稱,使用 encodeURIComponent 可以避免中文亂碼 var dsName = encodeURIComponent("ds1"); // 伺服器地址,需要根據實際情況調整 IP、埠、Web 應用名等 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();
儲存報表,點選分頁預覽,匯出效果如下圖所示:
已完成範本可參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\新計算引擎大數據集匯出.cpt
點選下載範本:新計算引擎大數據集匯出.cpt
注:匯出檔案類型為excel時,exportFormat = " ",encodeFormat = " "
// 需要匯出的資料集名稱,使用 encodeURIComponent 可以避免中文亂碼 var dsName = encodeURIComponent("ds1"); //匯出格式,不寫預設excel var exportFormat = "csv" //匯出編碼類型,只在匯出格式為csv時生效 var encodeFormat = "UTF - 8" // 伺服器地址,需要根據實際情況調整 IP、埠、Web 應用名等 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();
已完成範本可參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\新計算引擎大數據集匯出範例二.cpt
點選下載範本:新計算引擎大數據集匯出範例二.cpt
範例範本:下拉框參數聯動.cpt
若需要範本帶參數匯出,範本可透過參數面板中的參數進行篩選,具體設定請參見:SQL語句實現下拉框參數聯動
自訂按鈕設定如下圖所示:
其他步驟與本文第二章相同,程式碼如下圖所示:
// 需要匯出的資料集名稱,使用 encodeURIComponent 可以避免中文亂碼 var dsName = encodeURIComponent("ds1"); // 伺服器地址,需要根據實際情況調整 IP、埠、Web 應用名等 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();
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙