Quiero generar grandes informes no gráficos (miles de páginas) en el nivel de código, omitiendo el control ReportViewer
que simplemente atasca el navegador, desde los archivos .rdlc. Cuando realizo la prueba para generar un informe de aproximadamente 2000 páginas, el método Microsoft.Reporting.WebForms.LocalReport.Render
tarda aproximadamente media hora en finalizar, lo que se considera una mala experiencia del usuario.¿Cómo puedo mejorar el rendimiento del método LocalReport.Render al exportar PDF desde .rdlc en el código?
¿Hay algún truco o solución alternativa para mejorar el rendimiento de la representación: en código, rediseñando el archivo .rdlc o en otro lugar, por ejemplo, simplemente aumentando el hardware? código
Ejemplo:
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);
Cualquier ayuda es muy apreciada, gracias de antemano!