我想在代码级别渲染大型非图形化报告(数千页),省略从.rdlc文件中抓住浏览器的ReportViewer控件.当我测试呈现2000页的报表时,Microsoft.Reporting.WebForms.LocalReport.Render方法大约需要半小时才能完成,这被认为是糟糕的用户体验.
有没有任何技巧或替代解决方案来提高渲染的性能:在代码中,重新设计.rdlc文件或其他地方,例如只是增加硬件?
示例代码:
LocalReport localReport = new LocalReport(); localReport.ReportPath = Server.MapPath("~/report.rdlc"); SetDataSources(ref localReport); string reportType = "PDF"; string mimeType; string encoding; string fileNameExtension; string deviceInfo = "<DeviceInfo>" + " <OutputFormat>PDF</OutputFormat>" + " <PageWidth>8.5in</PageWidth>" + " <PageHeight>11in</PageHeight>" + " <MarginTop>0in</MarginTop>" + " <MarginLeft>0in</MarginLeft>" + " <MarginRight>0in</MarginRight>" + " <MarginBottom>0in</MarginBottom>" + "</DeviceInfo>"; } Warning[] warnings; string[] streams; byte[] renderedBytes; //Render the report renderedBytes = localReport.Render( reportType,deviceInfo,out mimeType,out encoding,out fileNameExtension,out streams,out warnings);
任何帮助非常感谢,谢谢提前!
解决方法
将datatable作为数据源返回的运行速度比对象列表快得多