Integrar o Reporting Services usando o acesso à URL - Aplicativo do Windows
Embora o acesso à URL a um servidor de relatório seja otimizado para um ambiente da Web, você também pode usá-lo para inserir relatórios do Reporting Services em um aplicativo do Microsoft Windows. No entanto, o acesso à URL que envolve o Windows Forms ainda exige que você use tecnologia de navegador da Web. Você pode usar os seguintes cenários de integração com o acesso à URL e o Windows Forms:
Exiba um relatório de um aplicativo Windows Form iniciando um navegador da Web programaticamente.
Use o controle WebBrowser em um Windows Form para exibir um relatório.
Iniciar o Internet Explorer a partir de um formulário do Windows
Você pode usar a classe Process para acessar um processo que esteja em execução em um computador. A classe Process é um constructo útil do Microsoft .NET Framework para iniciar, interromper, controlar e monitorar aplicativos. Para exibir um relatório específico no banco de dados do servidor de relatório, inicie o processo IExplore, passando a URL para o relatório. O exemplo de código a seguir pode ser usado para iniciar o Microsoft Internet Explorer e passar uma URL de relatório específica quando o usuário seleciona um botão em um formulário do Windows.
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);
}
}
Inserir um controle de navegador em um formulário do Windows
Se você não quiser exibir seu relatório em um navegador da Web externo, poderá inserir um navegador da Web diretamente como parte do seu Formulário do Windows usando o WebBrowser controle.
Para adicionar o controle WebBrowser ao seu Windows Form
Crie um novo aplicativo do Windows no Microsoft C# ou no Microsoft Visual Basic.
Localize o controle WebBrowser na caixa de diálogo Caixa de Ferramentas.
Se a Caixa de Ferramentas não estiver visível, você poderá acessá-la selecionando o item de menu Exibir e selecionando Caixa de Ferramentas.
Arraste o controle WebBrowser para a superfície de design do Windows Form.
O controle WebBrowser chamado webBrowser1 será adicionado ao Form
Direcione o controle WebBrowser para uma URL chamando seu método Navigate. Você pode atribuir uma cadeia de caracteres de acesso à URL específica ao seu controle WebBrowser em tempo de execução como mostrado no exemplo a seguir.
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);