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

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

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

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

Ответы [ 2 ]

0 голосов
/ 30 сентября 2010

Я отображал отчеты SSRS без использования элемента управления ReportViewer, последний раз с использованием LocalReports.Вы можете в коде настроить ReportViewer, заставить его сгенерировать PDF и получить поток байтов PDF.Я остановился на этом и представил PDF на экран, поскольку это был мой набор требований, но я уверен, что гораздо проще найти способ распечатать поток байтов файла 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 или может быть способ сделать это прямо из кода.

0 голосов
/ 30 сентября 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...