Lenka.Guo 发表于 2020-10-9 09:37:39

ActiveReportsJS 如何实现一键导出

前端报表主要实现布局上的展示功能,因此如果系统在设计时,是为了实现前后端分离,界面与服务分离的效果时候,在前端还是需要采用真分页的方式来展示报表。不能够一次性大量的展示数据。本篇文章主要来分享在前端不展示报表时,如何实现静默导出。

1.声明PageReport 对象
var ARJS = GC.ActiveReports.Core;
            var Excel = GC.ActiveReports.XlsxExport;

            var settings = {
                sheetName: '快递单',
                pageSettings: {
                  size:'A4',
                  orientation: 'portrait'
                }
            }

            var pageReport = new ARJS.PageReport();

2.调用 PageReport 对象的exportDocument()
pageReport.load('/report/DistributorBudget.rdlx-json')
                .then(function() { return pageReport.run() })
                .then(function(pageDocument) { return Excel.exportDocument(pageDocument, settings) })
                .then(function(result) { result.download('arjs-excel') });




注意: 如果 PageReport 包含参数,可通过代码添加 Parameters对象后,传递值
var pageReport = new ARJS.PageReport();
                  pageReport.load('report/Test.rdlx-json')
                        .then(function () {
                            pageReport._parameters.P1.values = '11';
                            return pageReport.run()
                        })
                .then(function(pageDocument) { return Excel.exportDocument(pageDocument, settings) })
                .then(function(result) { result.download('arjs-excel') });


3. 在页面Load 事件中添加以上代码
<body onload="load()">


因为导出时静默导出,所以会全程后台没有提醒,只有在浏览器保存导出文件时,才会提示用户,另外因为前端报表导出和打印都依赖于客户端的资源,所以不推荐导出大数据量的报表文件。




页: [1]
查看完整版本: ActiveReportsJS 如何实现一键导出