Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Embora o acesso por URL a um servidor de relatórios esteja otimizado para um ambiente Web, também pode usar o acesso a URL para incorporar relatórios Reporting Services numa aplicação Microsoft Windows. No entanto, o acesso a URL que envolve o Windows Forms ainda exige que utilize tecnologia de navegador Web. Pode usar os seguintes cenários de integração com acesso a URL e Windows Forms:
Exiba um relatório de uma aplicação Windows Form iniciando um navegador Web de forma programática.
Use o WebBrowser controlo num Windows Form para mostrar um relatório.
Iniciar o Internet Explorer a partir de um Windows Form
Podes usar a Process classe para aceder a um processo que está a correr num computador. A Process classe é uma construção útil Microsoft .NET Framework para iniciar, parar, controlar e monitorizar aplicações. Para visualizar um relatório específico na base de dados do seu servidor de relatórios, pode iniciar o processo IExplore , passando a URL do relatório. O seguinte exemplo de código pode ser usado para iniciar Microsoft Internet Explorer e passar um URL de relatório específico quando o utilizador seleciona um botão num Windows Formulário.
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);
}
}
Incorporar um controlo do navegador num formulário do Windows
Se não quiser visualizar o seu relatório num navegador externo, pode incorporar um navegador Web de forma fluida como parte do seu Windows Form usando o WebBrowser controlo.
Para adicionar o controlo do Navegador Web ao seu Formulário do Windows
Crie uma nova aplicação Windows em Microsoft C# ou Microsoft Visual Basic.
Localiza o WebBrowser controlo na Caixa de Diálogo da Caixa de Ferramentas .
Se a Caixa de Ferramentas não estiver visível, pode aceder a ela selecionando o elemento do menu Visualizar e selecionando a Caixa de Ferramentas.
Arraste o WebBrowsercontrolo para a superfície de design do teu Windows Form.
O WebBrowsercontrolo chamado webBrowser1 é adicionado ao Formulário
Dirige o WebBrowser controlo para uma URL chamando o seu método Navegar . Pode atribuir uma cadeia específica de acesso a URL ao seu WebBrowser controlo em tempo de execução, como mostrado no exemplo seguinte.
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);