反饋已提交

網絡繁忙

新计算引擎大数据集导出

1. 概述

1.1 应用场景

新引擎预览可以有效解决模板预览慢的问题,不过导出数据集时还是比较慢。

1.2 实现思路

导出数据集较慢,主要是因为需要把所有模板都计算完毕再执行导出,所以只要新引擎支持大数据集导出就行了。

通过在工具栏上自定义一个按钮,输入自定义 JS 事件即可实现大数据集导出,可以明显提升导出速度。

注:该方法适用于使用新计算引擎的 cpt 模板。

2. 示例

2.1 自定义按钮

1)打开模板:%FR_HOME%\webroot\WEB-INF\reportlets\demo\NewbieGuide\行式报表.cpt,模板使用新计算引擎,方法参见文档:新计算引擎使用

2)菜单栏点击「模板>模板Web属性」,模板 Web 属性设置界面选择「分页预览设置>为该模板单独设置」,如下图所示:

Snag_13c27f09.png

2)工具栏添加一个自定义按钮,点击顶部工具栏编辑按钮,如下图所示:

Snag_13c6766a.png

3)自定义按钮重命名为大数据集导出,点击「自定义事件」按钮,如下图所示:

Snag_13c81594.png

4)打开的事件编辑界面,输入 JS 代码即可,如下图所示:

Snag_147dd190.png

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 效果预览

保存报表,点击分页预览,导出效果如下图所示:

C85B92BD-66D3-41FA-8988-4F01220B76E2.GIF

3. 模板下载

已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\新计算引擎大数据集导出.cpt

点击下载模板:新计算引擎大数据集导出.cpt

4. 其他说明

4.1 带参数导出

示例模板:下拉框参数联动.zip

若需要模板带参数导出,模板可通过参数面板中的参数进行筛选,具体设置请参见:下拉框参数联动

自定义按钮设置如下图所示:

1626231428914036.png

其他步骤与本文第二章相同,代码如下图所示:

// 需要导出的数据集名称,使用 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
不能為空

反馈已提交

网络繁忙