SSRS с пользовательским веб-интерфейсом - PullRequest
13 голосов
/ 15 сентября 2009

Можно ли создать пользовательский веб-интерфейс для запуска отчетов SSRS?

У нас есть кросс-браузерный веб-интерфейс для сбора входных данных для отчетов (для платформ не-SSRS), который мы хотели бы , чтобы вместо этого продолжить работу с SSRS. Он включает в себя доменные элементы управления пользовательским интерфейсом, которые уже были разработаны собственными силами, и ничто не сравнится с ORSB.

Нам не нужно выполнять динамическую визуализацию элементов управления с учетом типов - хотя я думаю, что RDL может помочь нам сказать, какие параметры (и их тип) принимает отчет - но нам нужно больше, чем Диспетчер отчетов дает нам.

По сути, мы хотели бы настроить / заменить интерфейс сбора ввода, сгенерированный диспетчером отчетов. Нам также нужно немного брендинга. Не проще ли вообще отказаться от диспетчера отчетов (я имею в виду внешнее) и напрямую взаимодействовать с веб-службой SSRS через наше собственное приложение ASP.NET?

Я новичок в местности для репортажей и не могу найти никакой информации по этому вопросу. Мы используем службы отчетов SQL Server 2005.

Ответы [ 4 ]

9 голосов
/ 16 сентября 2009

Да, это возможно. Мы внедрили решение, подобное этому, более 2 лет назад, когда мы были недовольны выбором параметров, который пришел OOTB.

По сути, у нас есть пользовательское приложение ASP.NET, с которым взаимодействуют пользователи. Когда загружается первая страница, она представляет список отчетов, доступных для этого пользователя (обмен данными из приложения ASP.NET с SSRS через веб-службы и с имитацией идентификатора, так что список обрезается по безопасности). Вам необходимо использовать Kerberos, если пользовательское приложение ASP.NET находится на сервере, отличном от сервера отчетов.

После того, как пользователь выбирает отчет, отображается экран выбора параметров (все еще в пользовательском приложении ASP.NET). Когда они выбирают свои параметры и нажимают «Создать отчет», некоторые JavaScript-коды добавляют входные теги для каждого параметра на лету в HTML-форму (скрытую от пользователя), а затем выполняют HTTP POST для веб-сервера SSRS.

Затем мы используем средство просмотра отчетов OOTB для отображения отчета, однако он размещается в рамке, так что верхняя часть экрана позволяет пользователю размещаться в пользовательском веб-приложении. Это позволяет им быстро вернуться и изменить параметры.

Мы выбрали этот подход, потому что у нас глобальная организация, но наше приложение размещалось централизованно - мы хотели, чтобы производительность была максимально хорошей для всех пользователей. Мы обнаружили, что средство просмотра отчетов было довольно хорошим с точки зрения производительности, но что выбор параметра OOTB, который пришел OOTB, был ужасен для соединений с высокой задержкой - много обратных передач и слишком много передаваемого трафика.

Еще одна хитрость - мы сделали параметры «скрытыми» в отчете, чтобы они не отображались в средстве просмотра отчетов.

Редактировать: Мы сделали это с SSRS 2005 и недавно обновили до SSRS 2008 с минимальными трудностями.

4 голосов
/ 15 сентября 2009

Если я вас правильно понимаю, вы захотите использовать ReportViewer для визуализации отчетов.

Вы можете в любом случае реализовать сбор данных, а затем просто передать входы в отчеты в качестве параметров:

//the report classes are in the namespace: Microsoft.Reporting.WebForms
Collection<ReportParameter> paramList = new Collection<ReportParameter>();
string reportPath = ApplicationInfo.ScorecardReportPath;
paramList.Add(new ReportParameter("UID", "5"));

ReportViewer1.ProcessingMode = ProcessingMode.Remote;
ReportViewer1.ServerReport.ReportServerUrl = new Uri("http://servername/ReportServer");
ReportViewer1.ServerReport.ReportPath = reportPath;
ReportViewer1.ServerReport.SetParameters(paramList);
ReportViewer1.ServerReport.Refresh();

ReportViewer - это элемент управления, который вы можете перетащить на свою страницу:

<rsweb:ReportViewer id="ReportViewer1" runat="server" documentmapwidth="175px" 
font-names="Verdana" font-size="8pt" promptareacollapsed="true" width="100%"
zoommode="Percent" zoompercent="100"/>

Я использовал этот подход, чтобы вложить средство просмотра отчетов в страницу, содержащуюся в главной странице. Позволяет отображать меню / верхний / нижний колонтитулы.

3 голосов
/ 15 сентября 2009

Мы создали пользовательский интерфейс для сбора критериев и форматирования данных (PDF, XLS и т. Д.) И использовали Веб-службы SSRS для запуска отчетов.

Это позволило нам сделать именно то, о чем вы говорите, в отношении использования вашего собственного пользовательского интерфейса и маркировки отчетов.

По сути, вы передаете имя RDL и набор параметров отчета в веб-сервис, и он вернет HTML (или любой другой формат, который вы укажете).

Некоторые ошибки включают необходимость переписывать URL-адреса при использовании сортировки столбцов SSRS, а также устанавливать собственные типы MIME, если вы хотите поддерживать PDF / Doc / XLS / etc ...

2 голосов
/ 21 марта 2012

Альтернативный способ создания фирменного стиля на SSRS, если вы не хотите использовать ASP.Net. Используйте подотчет в качестве заголовка и используйте навигацию между отчетами.

http://mybinote.blogspot.se/2012/03/branding-ssrs-and-make-it-look-like.html

...