反饋已提交

網絡繁忙

新計算引擎大資料集匯出

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 程式碼如下所示:

// 需要匯出的資料集名稱,使用 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();

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 = " "

// 需要匯出的資料集名稱,使用 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();

3.2 效果預覽

儲存報表,點選分頁預覽,匯出效果如下圖所示:

3.3 範本下載

已完成範本可參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\新計算引擎大數據集匯出範例二.cpt

點選下載範本:新計算引擎大數據集匯出範例二.cpt

4. 其他說明

4.1 帶參數匯出

範例範本:下拉框參數聯動.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後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙