反饋已提交

網絡繁忙

新計算引擎大資料集匯出

一、概述

  1. 新计算引擎可以有效解決範本預覽慢的問題,但是匯出資料集時還是比較慢,主要是由於需要把所有範本都計算完畢再執行匯出。

  2. 當新引擎支援大資料集匯出就可以完美解決此問題,透過在工具欄上自定義一個按鈕,輸入自定義 JS 事件即可實現大資料集匯出,可以明顯提升匯出速度。

注:該方法適用於使用新計算引擎的 cpt 範本。

二、實現方式

1
範本準備。
  1. 打開下文資料下載中範本【式列表.cpt】,新計算引擎使用參見:新計算引擎使用

2
新增自定義按鈕。
  1. 選單欄點選【範本】→【範本Web屬性】→【分頁預覽設定】→【為該範本單獨設定】。

  2. 新增一個自定義按鈕至頂部工具欄。

  3. 點選頂部工具欄編輯按鈕,將自定義按鈕重新命名為大資料集匯出。具體操作見下圖。

1.gif

3
設定匯出js事件--不帶參數資料集匯出。
  1. 點選自定義事件按鈕,增加js 代碼如下。

  2. 具體新增方式見下圖。

  3. 儲存報表,點選【分頁預覽】或【新分頁預覽】,匯出效果如下圖所示。

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


image.png

2.gif

4
設定匯出js事件--帶參數資料集匯出。
  1. 若是帶參資料集進行匯出,如下文資料下載範本【下拉框參數關聯.cpt】,自定義按鈕js如下所示。

  2. 自定義按鈕設置如下圖所示。

  3. 儲存報表,點選【分頁預覽】或【新分頁預覽】,匯出效果如下圖所示。


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

image (1).pngimage (2).png

 3.gif

、資料下載

1
不帶參資料集範例初始範本。
  1. 列式列表.cpt

2
不帶參資料集範例完成範本。
  1. 列式列表.rar

3
帶參資料集範例初始範本。
  1. 下拉框參數關聯.cpt 。

4
帶參資料集範例完成範本。

  1. 下拉框參數關聯.rar


附件列表


主題: 效能優化
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

文 檔回 饋

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉