10

我想在代码级别呈现大型非图形报告(数千页)ReportViewer,从 .rdlc 文件中省略只会阻塞浏览器的控件。当我测试呈现大约 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);

非常感谢任何帮助,在此先感谢!

4

5 回答 5

1

将标签放入<trust legacyCasModel="true" level="Full"/>其中为我做了。更多细节在这里<system.web>web.config

于 2018-05-04T16:35:44.477 回答
0

将数据表作为数据源返回比对象列表运行得快得多

于 2013-04-12T20:03:09.423 回答
0

生成大型 PDF 文件需要内存,但如果您需要,有一个技巧可以优化内存使用:

  1. 将报告生成为最多 5-10 页的单独 PDF 文档(使用特定的 PDF 库,如免费的iTextSharpPDF File Writer
  2. 然后将所有这些 PDF 文件合并为一个大型 PDF 文档。

当您控制报告生成的进度时,此技术也很有用。

于 2015-02-10T15:02:05.910 回答
0

删除 SSRS 报告中的所有表达式。任何条件格式、着色和交替行,这应该会大大减少您的下载时间。

于 2018-04-20T17:32:54.093 回答
0

经过我 5 个月的调查,无法以可接受的速度水平提高 RDLC 性能。RDLC 是为简单的报告(如收据和发票)创建的。如果报表页数大于 100 个且没有任何内部表达式,或大于 50 个页且具有动态内部表达式,则使用 html 是可接受的加载和呈现速度的最佳选择。

于 2021-01-15T22:41:54.790 回答