找回密码
 立即注册

QQ登录

只需一步,快速开始

fengyu77
银牌会员   /  发表于:2015-5-14 14:09:00
21#
回复 20楼frank.zhang的帖子

你好,我想要基于pagereport的Image、xml自定义导出代码。和两种区域报表(基于代码、基于xml)的Pdf导出例子。谢谢
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-5-14 15:17:00
22#
您好,
Image的导出
  1.             string reportname = "rptInvoice";
  2.             GrapeCity.ActiveReports.PageReport report = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath("../Reports/" + reportname + ".rdlx")));
  3.             report.Report.DataSources[0].DataSourceReference = "";
  4.             report.Report.DataSources[0].ConnectionProperties.DataProvider = "OLEDB";
  5.             report.Report.DataSources[0].ConnectionProperties.ConnectString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};", Server.MapPath("../Data/NWind_CHS.mdb"));

  6.             GrapeCity.ActiveReports.Document.PageDocument document = new GrapeCity.ActiveReports.Document.PageDocument(report);

  7.             GrapeCity.ActiveReports.Export.Image.Page.Settings settings = new GrapeCity.ActiveReports.Export.Image.Page.Settings();
  8.             settings.ImageType = GrapeCity.ActiveReports.Export.Image.Page.Renderers.ImageType.JPEG;


  9.             settings.StartPage = 1;
  10.             settings.EndPage = 1;

  11.             GrapeCity.ActiveReports.Export.Image.Page.ImageRenderingExtension renderingExtension = new GrapeCity.ActiveReports.Export.Image.Page.ImageRenderingExtension();
  12.             GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider _provider = new GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider();
  13.             document.Render(renderingExtension, _provider, settings);

  14.             System.IO.MemoryStream ms = new System.IO.MemoryStream();

  15.             _provider.GetSecondaryStreams()[0].OpenStream().CopyTo(ms);

  16.             Response.ContentType = "image/jpg";
  17.             Response.AddHeader("content-disposition", Server.UrlPathEncode("attachment;filename=客户订单.jpg"));
  18.             Response.BinaryWrite(ms.ToArray());
  19.             Response.End();
复制代码

xml的导出,现有的代码是基于目录的导出,您可以参考之前的代码,修改为导出XML的。
  1. // Provide the page report you want to render.
  2. GrapeCity.ActiveReports.PageReport report = new GrapeCity.ActiveReports.PageReport(new
  3. System.IO.FileInfo(@"C:\Sample_PageReport.rdlx"));
  4. GrapeCity.ActiveReports.Document.PageDocument reportDocument = new
  5. GrapeCity.ActiveReports.Document.PageDocument(report);
  6. // Create a output directory
  7. System.IO.DirectoryInfo outputDirectory = new System.IO.DirectoryInfo(@"C:\MyXml");
  8. outputDirectory.Create();
  9. // Provide settings for your rendering output.
  10. GrapeCity.ActiveReports.Export.Xml.Page.Settings xmlSetting = new
  11. GrapeCity.ActiveReports.Export.Xml.Page.Settings();
  12. GrapeCity.ActiveReports.Extensibility.Rendering.ISettings setting = xmlSetting;
  13. //Set the rendering extension and render the report.
  14. GrapeCity.ActiveReports.Export.Xml.Page.XmlRenderingExtension xmlRenderingExtension = new
  15. GrapeCity.ActiveReports.Export.Xml.Page.XmlRenderingExtension();
  16. GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider outputProvider = new
  17. GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider(outputDirectory,System.IO.Path.GetFileNameWithoutExtension(outputDirectory.Name));
  18. reportDocument.Render(xmlRenderingExtension, outputProvider, xmlSetting);
复制代码
回复 使用道具 举报
fengyu77
银牌会员   /  发表于:2015-5-14 16:49:00
23#
回复 22楼frank.zhang的帖子

谢谢,我还需要基于代码的、基于xml的Pdf导出代码
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-5-14 17:43:00
24#
您好,
您的问题我们已经收到,明天中午之前给您相关的代码。
回复 使用道具 举报
fengyu77
银牌会员   /  发表于:2015-5-15 08:58:00
25#
回复 22楼frank.zhang的帖子

你好,对于上述代码
System.IO.DirectoryInfo outputDirectory = new System.IO.DirectoryInfo(@"C:\MyXml");
中MyXml文件可以发我一个吗?
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-5-15 10:15:00
26#
您好,
经过电话沟通,MyXMl是自己导出的文件。
区域报表导出pdf可以参考
http://arhelp.grapecity.com/webh ... fExport~Export.html

实现的思路是,使用Pdf.Section.PdfExport 这个类,这个类的使用方法和xlsExport的使用方式类似。
区域报表分为代码和xml格式的,在创建区域报表的时候,代码通过new的方式创建。XML需要通过XmlTextReader 先进行加载。但是,在加载完成后,使用上没有区别。您可以先尝试下,如果在实现过程中遇到问题,欢迎来论坛提问。
回复 使用道具 举报
fengyu77
银牌会员   /  发表于:2015-5-15 13:08:00
27#
回复 26楼frank.zhang的帖子

你好,对于柱状图之类的Excel导出无法实现,该怎么做?

不好意思,我已解决这个问题,不用回复了
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-5-15 13:47:00
28#
回复 使用道具 举报
123
您需要登录后才可以回帖 登录 | 立即注册
返回顶部