Интеграция служб Reporting Services с помощью SOAP — приложения Windows
С помощью API SOAP служб Reporting Services можно получить доступ ко всем функциональным возможностям сервера отчетов. Поскольку API SOAP является веб-службой, к нему легко получить доступ, чтобы предоставить для пользовательских бизнес-приложений функции создания отчетов в масштабе предприятия. Чтобы получить доступ к веб-службе в приложении Windows, можно просто написать код, который вызывает службу. С помощью Microsoft платформа .NET Framework можно создать прокси-класс, предоставляющий свойства и методы веб-службы. Затем вы можете использовать знакомую инфраструктуру и средства для создания бизнес-приложений, построенных на технологии Reporting Services.
Интеграция функций управления отчетами с помощью Windows Forms
В отличие от доступа по URL-адресу, API SOAP дает доступ к полному набору функций управления, доступных на сервере отчетов. Это значит, что все административные функции диспетчера отчетов становятся доступными для разработчиков по протоколу SOAP. Таким образом, с помощью Windows Forms можно разработать законченное средство по управлению и администрированию. Например, в приложении Windows может понадобиться разрешить пользователям получать содержимое пространства имен для сервера отчетов. Метод веб-службы ListChildren можно использовать для перечисления всех элементов в базе данных сервера отчетов, а затем использовать элемент управления Listview, Treeview или Combobox для отображения этих элементов пользователям. Следующий код веб-службы может использоваться для получения текущего списка доступных отчетов в папке "Мои отчеты" пользователя, когда пользователь выбирает кнопку в форме:
' Button click event that retrieves a list of reports from
' the My Reports folder and displays them in a combo box
Private Sub listReportsButton_Click(sender As Object, e As System.EventArgs)
' Create a new Web service object and set credentials
' to Windows Authentication
Dim rs As New ReportingService2010()
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
' Return the list of items in My Reports
Dim items As CatalogItem() = rs.ListChildren("/Adventureworks Sample Reports", False)
Dim ci As CatalogItem
For Each ci In items
' If the item is a report, add it to
' a combo box
If ci.TypeName = "Report" Then
catalogComboBox.Items.Add(ci.Name)
End If
Next ci
End Sub 'listReportsButton_Click
// Button click event that retrieves a list of reports from
// the My Reports folder and displays them in a combo box
private void listReportsButton_Click(object sender, System.EventArgs e)
{
// Create a new Web service object and set credentials
// to Windows Authentication
ReportingService2010 rs = new ReportingService2010();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
// Return the list of items in My Reports
CatalogItem[] items = rs.ListChildren("/Adventureworks Sample Reports", false);
foreach (CatalogItem ci in items)
{
// If the item is a report, add it to
// a combo box
if (ci.TypeName == "Report")
catalogComboBox.Items.Add(ci.Name);
}
}
Затем можно разрешить пользователям выбрать отчет из поля со списком и просмотреть отчет на форме с помощью элемента управления веб-браузера или элемента управления «Изображение».
Включение просмотра отчетов и навигации с помощью Windows Forms
Для интеграции отчетов в приложения Windows Forms доступно два метода.
Можно использовать API SOAP для подготовки отчетов к просмотру в любом из поддерживаемых форматов с помощью метода Render. Включение просмотра отчетов и переходов по отчетов с помощью протокола SOAP сопряжено с некоторыми недостатками.
Вы не можете воспользоваться встроенными функциями панели инструментов отчета, которая включена в средство просмотра HTML через доступ по URL-адресу.
При подготовке к просмотру в формате HTML изображения или ресурсы необходимо обрабатывать в отдельных потоках с помощью метода RenderStream.
Существует небольшое преимущество производительности для отрисовки отчетов с помощью ДОСТУПА по URL-адресу с помощью API SOAP.
Однако метод Render API SOAP позволяет готовить отчеты к просмотру и сохранять их в различных выходных форматах программным образом. Этот метод является преимуществом по сравнению с доступом по URL-адресу, для которого требуется взаимодействие с пользователем. С помощью метода Render API SOAP отчет можно подготовить к просмотру в любом из поддерживаемых выходных форматов.
Также можно использовать свободно распространяемые элементы управления средства просмотра отчетов, входящие в состав Microsoft Visual Studio 2008. Элементы управления средства просмотра отчетов упрощают внедрение функций служб Reporting Services в пользовательские приложения. Элементы управления "Средство просмотра отчетов" предназначены для разработчиков, которые хотят предоставить готовые, полностью созданные отчеты в рамках набора функций приложения. Например, приложение управления веб-сайтами может включать отчеты, показывающие анализ потоков щелчка на корпоративных веб-сайтах. Внедрение элементов управления в приложение более простым способом достигает того же результата, что и включению серверных компонентов Reporting Services в составе развертывания приложения. Элементы управления предоставляют функциональные возможности отчета, но без дополнительной поддержки разработки, публикации или распространения и доставки, которые находятся в службах Reporting Services.
Существует две версии элементов управления средства просмотра отчетов: одна предназначена для многофункциональных клиентских приложений Windows, а вторая — для приложений ASP.NET. Элементы управления поддерживают режимы локальной и удаленной обработки. В режиме локальной обработки приложение предоставляет определения отчетов, наборы данных и триггерную обработку отчетов. В режиме удаленной обработки получение данных и обработка отчетов выполняется на сервере отчетов, а элементы управления используются для отображения и навигации по отчету. Такая модель позволяет разрабатывать мощные, легкомасштабируемые приложения.
Документацию по элементам управления средства просмотра отчетов см. в справке в Интернете по среде Visual Studio. Дополнительные сведения есть в документации по продукту Visual Studio.