找回密码
 立即注册

QQ登录

只需一步,快速开始

qiqiaoshe

中级会员

22

主题

47

帖子

594

积分

中级会员

积分
594

活字格认证微信认证勋章

[已处理] 定时产生报表

qiqiaoshe
中级会员   /  发表于:2014-1-13 16:00  /   查看:6387  /  回复:5
现在想要一功能,定时去生成报表到文件夹或发到Email中,ActiveReport 是否提供这种功能,如何实现?

5 个回复

倒序浏览
roger.wang
社区贡献组   /  发表于:2014-1-13 17:12:00
沙发
回复 1楼qiqiaoshe的帖子

抱歉,您说的属于业务逻辑, AR未内置这种功能。

实现流程如下:
1 配置AR报表模板(报表)
2 定期获取数据,填充报表
3 报表生成PDF、Excel文件
4 压缩为zip格式
5 写C#代码--发送邮件的,作为附件发送。
回复 使用道具 举报
qiqiaoshe
中级会员   /  发表于:2014-1-14 11:51:00
板凳
有没有报表生成PDF、Excel文件 的代码参考下
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-1-14 12:17:00
地板
回复 3楼qiqiaoshe的帖子

安装控件自带的帮助文档有详细的导出PDF、Excel的说明和demo:
ActiveReports Developer 7 > ActiveReports Developer Guide > Samples and Walkthroughs > Walkthroughs > Page Report Walkthroughs > Export > Custom Web Exporting in a Page Report

如:

  1. GrapeCity.ActiveReports.PageReport _reportDef = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath("") + "\\CustomWebExporting.rdlx"));
  2. GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(_reportDef);

  3. // Set the rendering extension and render the report.
  4. GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension _renderingExtension = new GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension();
  5. GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider _provider = new GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider();
  6. _reportRuntime.Render(_renderingExtension, _provider);

  7. Response.ContentType = "application/pdf";
  8. Response.AddHeader("content-disposition", "inline;filename=MyExport.pdf");
  9. System.IO.MemoryStream ms = new System.IO.MemoryStream();
  10. _provider.GetPrimaryStream().OpenStream().CopyTo(ms);
  11. Response.BinaryWrite(ms.ToArray());
  12. Response.End();      
复制代码
回复 使用道具 举报
qiqiaoshe
中级会员   /  发表于:2014-1-15 14:18:00
5#
报了一个异常,没有数据,这里我使用的是DataTable作为数据

No data has been set. Please specify either a DataSet or a DataView to use
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.InvalidOperationException: No data has been set. Please specify either a DataSet or a DataView to use

源错误:


行 84:                 GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider _provider = new GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider();
行 85:                 GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension _renderingExtension = new GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension();
行 86:                 _reportRuntime.Render(_renderingExtension, _provider);
行 87:                 System.IO.MemoryStream ms = new System.IO.MemoryStream();
行 88:

code:
                PageReport report = null;
                report = new PageReport(new FileInfo(Server.MapPath("~/Reports/" + repreport.RepReportTemplate.FileName)));
                ((PageReport)(report)).Document.LocateDataSource += Document_LocateDataSource;
                report.Report.Code = &quotublic Dim unit As String = \"MMM\"";
                ViewBag.Report = report;
               
                GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(report);
                GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension pdfext = new PdfRenderingExtension();
                GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider _provider = new GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider();
                GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension _renderingExtension = new GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension();
                _reportRuntime.Render(_renderingExtension, _provider);
                System.IO.MemoryStream ms = new System.IO.MemoryStream();

                _provider.GetPrimaryStream().OpenStream().CopyTo(ms);
                FileStream fs = new FileStream("d:\\reporta.pdf", FileMode.CreateNew);
                fs.Write(ms.GetBuffer(),0,ms.GetBuffer().Length);
                fs.Close();
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-1-15 14:27:00
6#
回复 5楼qiqiaoshe的帖子

报错是没有数据源导致的。

能给个完整的demo吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部