前端报表主要实现布局上的展示功能,因此如果系统在设计时,是为了实现前后端分离,界面与服务分离的效果时候,在前端还是需要采用真分页的方式来展示报表。不能够一次性大量的展示数据。本篇文章主要来分享在前端不展示报表时,如何实现静默导出。
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[0] = '11';
- return pageReport.run()
- })
- .then(function(pageDocument) { return Excel.exportDocument(pageDocument, settings) })
- .then(function(result) { result.download('arjs-excel') });
复制代码
3. 在页面Load 事件中添加以上代码
因为导出时静默导出,所以会全程后台没有提醒,只有在浏览器保存导出文件时,才会提示用户,另外因为前端报表导出和打印都依赖于客户端的资源,所以不推荐导出大数据量的报表文件。
|
|