Usando acesso à URL em um 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 incorporar relatórios do Reporting Services a 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.
Iniciando o Internet Explorer a partir de um Windows Form
Você pode usar a classe Process para acessar um processo que esteja em execução em um computador. A classe Process é uma construção útil do Microsoft.NET Framework para iniciar, parar, controlar e monitorar aplicativos. Para exibir um relatório específico em seu banco de dados do servidor de relatório, inicie o processo IExplore, passando a URL ao relatório. O exemplo de código a seguir pode ser usado para iniciar o Microsoft Internet Explorer e para passar uma URL específica do relatório quando o usuário clicar em um botão de um 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);
}
}
Para obter mais informações sobre a sintaxe específica de uma cadeia de caracteres de acesso à URLdo servidor de relatório, consulte Sintaxe do acesso à URL.
Incorporando um controle de navegador a um Windows Form
Se você não quiser exibir o seu relatório em um navegador da Web externo, poderá incorporar um navegador da Web de forma direta, como parte do seu Windows Form, usando o controle WebBrowser.
Para adicionar o controle WebBrowser ao seu Windows Form
Crie um aplicativo de Windows novo no MicrosoftVisual C# ou no MicrosoftVisual 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 clicando no item de menu Exibir e selecionando Caixa de Ferramentas.
Arraste o controle WebBrowser para a superfície de design do seu 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);