找回密码
 立即注册

QQ登录

只需一步,快速开始

893559686

初级会员

13

主题

40

帖子

345

积分

初级会员

积分
345

微信认证勋章

893559686
初级会员   /  发表于:2017-3-27 09:41  /   查看:4314  /  回复:3
本帖最后由 893559686 于 2017-3-27 09:45 编辑

1.想问一下,批量导出到报表可以使用,GrapeCity.ActiveReports.Viewer.Win.Viewer 进行批量的导出吗?按照下面的写法,出现了一个错误,Operation is not supported for section report,所以想问下:

GrapeCity.ActiveReports.PageReport _repPage = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(aPath));

                    GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(_repPage);
                    _reportRuntime.LocateDataSource += (send, args) =>
                    {
                        object reportData = null;
                        if (item.ReportDataSourceDic != null)
                            reportData = item.ReportDataSourceDic.Where(i => i.Key.Equals(args.DataSetName)).FirstOrDefault().Value;
                        args.Data = reportData;
                    };

GrapeCity.ActiveReports.Viewer.Win.Viewer ReportViewer = new GrapeCity.ActiveReports.Viewer.Win.Viewer();
ReportViewer.LoadDocument(_reportRuntime);

GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings Settings = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings();
GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension RenderingExtension = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension();

StreamProvider StreamProvider = new FileStreamProvider(new DirectoryInfo(Path.GetDirectoryName(aExportPath)), Path.GetFileNameWithoutExtension(aExportPath));
ReportViewer.Render(RenderingExtension, StreamProvider, Settings.GetSettings());

2.之前是按照下面的方式批量导出的,但是出现一个问题,同一张报表,用GrapeCity.ActiveReports.Viewer.Win.Viewer 和GrapeCity.ActiveReports.Export.Excel.Section.XlsExport 分别导出,导出的样式不一样,GrapeCity.ActiveReports.Viewer.Win.Viewer 的导出方式样式是没有问题的。
string aNewFileName = string.Empty;//新文件 string aPath = RegSettings.ReportPath + item.Path + item.FileName;//报表路径
GrapeCity.ActiveReports.PageReport _repPage = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(aPath));           
GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(_repPage);  
_reportRuntime.LocateDataSource += (send, args) =>
{                       
    object reportData = null;  
   if (item.ReportDataSourceDic != null)  
         reportData = item.ReportDataSourceDic.Where(i => i.Key.Equals(args.DataSetName)).FirstOrDefault().Value;
   args.Data = reportData;  
};
aNewFileName = item.Name + aFileSuffix;
GrapeCity.ActiveReports.Export.Excel.Section.XlsExport xlsExport1 = new GrapeCity.ActiveReports.Export.Excel.Section.XlsExport();   
xlsExport1.FileFormat = GrapeCity.ActiveReports.Export.Excel.Section.FileFormat.Xlsx;
string aExportPath = aTempFolder + "\\" + aNewFileName;
xlsExport1.Export(_reportRuntime, aExportPath);





3 个回复

倒序浏览
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2017-3-27 11:08:08
沙发
1. AR 提供的导出方法主要有两种:Rendering Extensions 和Export Filters, Rendering Extensions  只针对PageReport 和RDL Report, 而ExportFilters 支持三种报表类型

2. Export Filters 和Rendering Extensions 是两种导出方法,如果是页面报表或RDL 报表推荐使用Rendering Extensions.
回复 使用道具 举报
893559686
初级会员   /  发表于:2017-3-27 13:20:34
板凳
Lenka.Guo 发表于 2017-3-27 11:08
1. AR 提供的导出方法主要有两种:Rendering Extensions 和Export Filters, Rendering Extensions  只针对 ...

谢谢,使用GrapeCity.ActiveReports.Document.PageDocument.Render() 方式导出报表样问题得到解决。

评分

参与人数 1金币 +1000 收起 理由
Lenka.Guo + 1000 赞一个!

查看全部评分

回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2017-3-27 13:51:05
地板
谢谢反馈~奖励1000金币
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部