Службы отчетов SQL Server: как автоматически печатать отчеты без предварительного просмотра из веб-приложения

Я использую службы отчетов SQL Server и просматриваю отчеты в веб-приложении в ASP.NET. Для отображения отчетов я использую веб-элемент управления Report viewer, который предоставляет функции экспорта отчета и / или его печати, но требует предварительного просмотра отчета перед его печатью.

Мне нужно распечатать отчет без предварительного просмотра на веб-странице? Кажется, есть способ сделать это в WinForms, но я не нашел способа сделать это в WebForms. Любые идеи?

Спасибо Дэвид


person davandries    schedule 29.09.2010    source источник


Ответы (2)


Я не думаю, что это возможно. Средство просмотра отчетов веб-форм SSRS довольно жесткое.

Что еще хуже: функция печати существует только в IE, а не в других браузерах. Пользователи Firefox, Safari, Chrome и Opera должны загрузить файл в формате PDF или Word и распечатать оттуда.

person Adrian Grigore    schedule 29.09.2010

Я визуализировал отчеты SSRS без использования элемента управления ReportViewer, в последнее время с использованием LocalReports. Вы можете в коде настроить ReportViewer, заставить его создать PDF-файл и получить байтовый поток PDF-файла. Я остановился на этом и отобразил PDF-файл на экране b / c, что было моим набором требований, но я уверен, что гораздо проще найти способ распечатать байтовый поток файла PDF, чем иметь дело с чем-либо с ReportViewer.

Вот как получить LocalReport в байтовый массив файла PDF:

LocalReport lclRpt = new LocalReport();
//Do Stuff like bind DataSources, ReportParameters, SubReportProcessing Delegates, etc.
string strMIMEType = String.Empty;
string strEncoding = String.Empty;
string strFileNameExtension = string.Empty;
string[] strarrStreams;
Warning[] warnLocalReportWarnings;
byte[] bytarrPDF = lclRpt.Render("PDF", "<DeviceInfo><StartPage>0</StartPage></DeviceInfo>", out strMIMEType, out strEncoding, out strFileNameExtension, out strarrStreams, out warnLocalReportWarnings);
return bytarrPDF;

Я не на 100% знаю, как выполнить ваш последний шаг, может понадобиться утилита .pdf или есть способ сделать это прямо из кода.

person ben f.    schedule 29.09.2010