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


Интеграция служб 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
  1. Создайте новое приложение Windows в Microsoft C# или Microsoft Visual Basic.

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

    Если панель элементов не отображается, вы можете получить к ней доступ, выбрав пункт меню "Вид" и выбрав панель элементов.

  3. Перетащите элемент управления 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);