Я искал решение для создания отчетов в ASP.Net MVC, и я действительно нашел решение от Rai Kaimal Рендеринг RDLC напрямую в поток ответов в ASP.NET MVC . Все работает просто отлично, но функция localReport.Render () отрисовывает страницу очень долго (40 секунд для 2 очень простых страниц - те же отчеты выполняются за 2 секунды из решения winforms). Любая помощь будет оценена. Если нет возможности ускорить отчет, мне интересно узнать, как другие разработчики обрабатывают отчетность в решении ASP.Net MVC.
Вот мой код:
public ActionResult CustomerReport()
{
var localReport = new LocalReport
{
ReportPath = Server.MapPath("~/Reports/CustomerReport.rdlc")
};
var reportDataSource = new ReportDataSource("Customers", _repository.GetAll( ));
localReport.DataSources.Add(reportDataSource);
const string reportType = "PDF";
string mimeType;
string encoding;
string fileNameExtension;
//The DeviceInfo settings should be changed based on the reportType
//http://msdn2.microsoft.com/en-us/library/ms155397.aspx
const string deviceInfo = "<DeviceInfo>" +
" <OutputFormat>PDF</OutputFormat>" +
" <PageWidth>8.5in</PageWidth>" +
" <PageHeight>11in</PageHeight>" +
" <MarginTop>0.5in</MarginTop>" +
" <MarginLeft>1in</MarginLeft>" +
" <MarginRight>1in</MarginRight>" +
" <MarginBottom>0.5in</MarginBottom>" +
"</DeviceInfo>";
Warning[] warnings;
string[] streams;
//Render the report
byte[] renderedBytes = localReport.Render(
reportType,
deviceInfo,
out mimeType,
out encoding,
out fileNameExtension,
out streams,
out warnings);
return File(renderedBytes, mimeType);
}