Voglio rendere grandi report non grafici (migliaia di pagine) nel livello di codice, omettendo il controllo ReportViewer
che blocca solo il browser, dai file .rdlc. Quando eseguo il test per il rendering di un report che è in qualche modo di 2000 pagine, il metodo Microsoft.Reporting.WebForms.LocalReport.Render
impiega circa mezz'ora per terminare, considerata un'esperienza utente negativa.Come posso migliorare le prestazioni del metodo LocalReport.Render durante l'esportazione di PDF da .rdlc nel codice?
Esistono trucchi o soluzioni alternative per migliorare le prestazioni del rendering: nel codice, nella riprogettazione del file .rdlc o altrove, ad esempio, solo aumentando l'hardware? Codice
Esempio:
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);
Qualsiasi aiuto è molto apprezzato, grazie in anticipo!