Как улучшить производительность метода LocalReport.Render при экспорте PDF из .rdlc в коде? - PullRequest
10 голосов
/ 24 октября 2011

Я хочу отображать большие неграфические отчеты (тысячи страниц) на уровне кода, исключая элемент управления ReportViewer, который просто блокирует браузер, из файлов .rdlc.Когда я тестирую отчет, который состоит из нескольких тысяч страниц, метод 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 ]

0 голосов
/ 04 мая 2018

Размещение <trust legacyCasModel="true" level="Full"/> внутри <system.web> тега в web.config сделал это для меня. Подробнее здесь

0 голосов
/ 10 февраля 2015

Для генерации больших файлов PDF требуется память, но есть способ оптимизировать использование памяти, если вам необходимо:

  1. создать отчет в виде отдельных документов PDF объемом до 5-10 страниц (используя специальныеБиблиотеки PDF, такие как бесплатные iTextSharp или PDF File Writer
  2. , а затем объедините все эти файлы PDF в один большой документ PDF.

ThisТехника также полезна, поскольку вы контролируете ход создания отчета.

0 голосов
/ 20 апреля 2018

Удалить все выражения в отчете SSRS. Любое условное форматирование, раскраска и чередование строк должны значительно сократить время загрузки.

0 голосов
/ 13 апреля 2013

возвращает данные, так как источник данных работает намного быстрее, чем список объектов

...