Поделиться через


Использование доступа по URL-адресу в приложении Windows

Доступ к серверу отчетов по URL-адресу оптимизирован для веб-среды, его также можно использовать для внедрения отчетов служб Службы Reporting Services в приложение Microsoft Windows. Однако для доступа по URL-адресу, в котором используется Windows Forms, по-прежнему необходимо применение технологии веб-браузера. Для интеграции доступа по URL-адресу и Windows Forms можно использовать следующие сценарии.

  • Отображение отчета из приложения Windows Forms путем программного запуска веб-браузера.

  • Использование элемента управления WebBrowser на форме Windows Forms для отображения отчета.

Запуск обозревателя Internet Explorer из формы Windows Forms

С помощью класса Process можно получить доступ к процессу, выполняющемуся на компьютере. Класс Process является конструкцией Microsoft .NET Framework, которую удобно использовать для запуска и остановки приложений, для управления приложениями и для наблюдения за приложениями. Чтобы просмотреть определенный отчет в базе данных сервера отчетов, можно запустить процесс IExplore, передав URL-адрес отчета. С помощью следующего примера кода можно запустить обозреватель Microsoft Internet Explorer и передать определенный URL-адрес отчета, когда пользователь нажимает кнопку на форме Windows Forms.

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);
   }
}

Дополнительные сведения о синтаксисе строки доступа к серверу отчетов по URL-адресу см. в разделе Синтаксис доступа по URL-адресу.

Внедрение элемента управления браузера в форму Windows Forms

Если нужно просматривать отчет во внешнем веб-браузере, можно естественным образом внедрить веб-браузер в форму Windows Forms, используя элемент управления WebBrowser.

Добавление элемента управления WebBrowser в форму Windows Forms

  1. Создайте новое приложение Windows на языке Microsoft Visual C# или Microsoft Visual Basic.

  2. Перейдите к элементу управления WebBrowser в диалоговом окне Область элементов.

    Если окно Область элементов скрыто, его можно вызвать, выбрав в меню Вид пункт Область элементов.

  3. Перетащите элемент управления WebBrowserв область конструктора на форме Windows Forms.

    В форму будет добавлен элемент управления WebBrowser с именем webBrowser1.

Чтобы направить элемент управления WebBrowser на URL-адрес, вызовите метод Navigate. Для элемента управления WebBrowser можно назначить строку доступа по URL-адресу во время выполнения, как показано в следующем примере.

Dim url As String = "https://localhost/reportserver?/" & _
                    "AdventureWorks2008R2 Sample Reports/" & _
                    "Company Sales&rs:Command=Render"
WebBrowser1.Navigate(url)
string url = "https://localhost/reportserver?/" +
             "AdventureWorks2008R2 Sample Reports/" +
             "Company Sales&rs:Command=Render";
webBrowser1.Navigate(url);