找回密码
 立即注册

QQ登录

只需一步,快速开始

Lenka.Guo 讲师达人认证 悬赏达人认证
超级版主   /  发表于:2020-10-9 09:37  /   查看:3183  /  回复:0
前端报表主要实现布局上的展示功能,因此如果系统在设计时,是为了实现前后端分离,界面与服务分离的效果时候,在前端还是需要采用真分页的方式来展示报表。不能够一次性大量的展示数据。本篇文章主要来分享在前端不展示报表时,如何实现静默导出。

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

  3.             var settings = {
  4.                 sheetName: '快递单',
  5.                 pageSettings: {
  6.                     size:'A4',
  7.                     orientation: 'portrait'
  8.                 }
  9.             }

  10.             var pageReport = new ARJS.PageReport();
复制代码


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




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



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



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




点评

请看x.co/qdd(网址) 肺炎,大规模的死亡和恐惧,看海外真实报道...... git.io/ghhhh (网址)  发表于 2020-10-18 05:43

1 个回复

倒序浏览
您需要登录后才可以回帖 登录 | 立即注册
返回顶部