Интеграция служб Reporting Services с помощью доступа по URL-адресу — приложение Windows
Хотя URL-адрес доступа к серверу отчетов оптимизирован для веб-среды, вы также можете использовать URL-адрес для внедрения отчетов Reporting Services в приложение Microsoft Windows. Однако для доступа по URL-адресу, в котором используется Windows Forms, по-прежнему необходимо применение технологии веб-браузера. Для интеграции доступа по URL-адресу и Windows Forms можно использовать следующие сценарии.
Отображение отчета из приложения Windows Forms путем программного запуска веб-браузера.
Использование элемента управления WebBrowser на форме Windows Forms для отображения отчета.
Запуск Internet Explorer из Формы Windows
С помощью класса Process можно получить доступ к процессу, выполняющемуся на компьютере. Класс Process — это полезная конструкция Microsoft платформа .NET Framework для запуска, остановки, управления и мониторинга приложений. Чтобы просмотреть определенный отчет в базе данных сервера отчетов, можно запустить процесс IExplore, передав URL-адрес отчета. Следующий пример кода можно использовать для запуска Microsoft Internet Explorer и передачи определенного URL-адреса отчета, когда пользователь выбирает кнопку в Windows Form.
Private Sub viewReportButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles viewReportButton.Click
' Build the URL access string based on values supplied by a user
Dim url As String = serverUrlTextBox.Text + "?" & reportPathTextBox.Text & _
"&rs:Command=Render" & "&rs:Format=HTML4.0"
' If the user does not select the toolbar check box,
' turn the toolbar off in the HTML Viewer
If toolbarCheckBox.Checked = False Then
url += "&rc:Toolbar=False"
End If
' load report in the Web browser
Try
System.Diagnostics.Process.Start("IExplore", url)
Catch
MessageBox.Show("The system could not start the specified report using Internet Explorer.", _
"An error has occurred", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub 'viewReportButton_Click
// Sample click event for a Button control on a Windows Form
private void viewReportButton_Click(object sender, System.EventArgs e)
{
// Build the URL access string based on values supplied by a user
string url = serverUrlTextBox.Text + "?" + reportPathTextBox.Text +
"&rs:Command=Render" + "&rs:Format=HTML4.0";
// If the user does not check the toolbar check box,
// turn the toolbar off in the HTML Viewer
if (toolbarCheckBox.Checked == false)
url += "&rc:Toolbar=False";
// load report in the Web browser
try
{
System.Diagnostics.Process.Start("IExplore", url);
}
catch (Exception)
{
MessageBox.Show(
"The system could not open the specified report using Internet Explorer.",
"An error has occurred", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Внедрение элемента управления браузера в Windows Form
Если вы не хотите просматривать отчет во внешнем веб-браузере, вы можете легко внедрить веб-браузер как часть формы Windows Form с помощью WebBrowser элемента управления.
Добавление элемента управления WebBrowser в форму Windows Forms
Создайте новое приложение Windows в Microsoft C# или Microsoft Visual Basic.
Перейдите к элементу управления WebBrowser в диалоговом окне Область элементов.
Если панель элементов не отображается, вы можете получить к ней доступ, выбрав пункт меню "Вид" и выбрав панель элементов.
Перетащите элемент управления WebBrowser в область конструктора в Windows Forms.
В форму будет добавлен элемент управления WebBrowser с именем webBrowser1.
Чтобы направить элемент управления WebBrowser на URL-адрес, вызовите метод Navigate. Для элемента управления WebBrowser можно назначить строку доступа по URL-адресу во время выполнения, как показано в следующем примере.
Dim url As String = "https://localhost/reportserver?/" & _
"AdventureWorks Sample Reports/" & _
"Company Sales&rs:Command=Render"
WebBrowser1.Navigate(url)
string url = "https://localhost/reportserver?/" +
"AdventureWorks Sample Reports/" +
"Company Sales&rs:Command=Render";
webBrowser1.Navigate(url);