新計算エンジン大規模データエクスポート

  • 作成者:FRInternational
  • 編集回数:2次
  • 最終更新:FRInternational 于 2022-08-31
  • 一.概要

    1.応用シーン

    新エンジンでは、テンプレートプレビューが遅い問題が効果的に解決されましたが、データセットのエクスポートはまだ遅いです。

    2.実現の原理

    データセットのエクスポートが遅い理由は、主にエクスポートを実行する前に、すべてのテンプレートを計算しなければならないことにあり、それを解決するために、新計算エンジンは大規模データセットへのエクスポートをサポートする必要があります。

    そこで、ツールバーでカスタムボタンを追加し、カスタムイベントJSを書き込むことで、大規模データセットへのエクスポートが実現され、エクスポートのスピードが大幅に引き上げられます。

    注:上記の方法は新計算エンジンの.cptテンプレートに適用します。

    二.例示

    1.カスタムボタン

    1.テンプレート%FR_HOME%\webroot\WEB-INF\reportlets\demo\NewbieGuide\行式报表.cptを開き、新計算エンジンを使用します。詳しい方法は新计算エンジン使用をご参考ください。

    2.メニューバーのテンプレート-テンプレートのWeb属性をクリックし、テンプレートWeb属性の設定画面で改ページプレビュー設定-テンプレート個別設定の順で操作します。具体的には下記の図の通りです。

    01.png

    3.ツールバーにカスタムボタンを追加し、下図のように編集ボタンをクリックします。

    02.png

    4.カスタムボタンを大型データセット導出に命名し、「カスタムイベント」ボタンをクリックします。具体的には下記の図の通りです。

    03.png

    5.イベント編集画面にJSコードを書き込みます。具体的には下記の図の通りです。

    04.png

    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.効果プレビュー

    帳票を保存し、改ページプレビューをクリックします。エクスポートの効果は下図のとおりです。

    05.gif

    三.その他の説明

    1.パラメータ付きのエクスポート

    パラメータ付きにテンプレートをエクスポートしたいときは、パラメータパネルの中のパラメータを通してテンプレートを選択できます。カスタムボタンの設定は下図のとおりです。

    06.png

    その他の手順は本文第二章と同じです。コードは下図のとおりです。

        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();


    Attachment List


    Theme: test
    既に最初
    既に最後
    • Helpful
    • Not helpful
    • Only read