Utilisation de l'accès URL dans une application Windows
Même si l'accès URL à un serveur de rapports est optimisé pour un environnement Web, vous pouvez également utiliser l'accès URL pour incorporer des rapports Reporting Services dans une application Microsoft Windows. Toutefois, l'accès URL qui nécessite des Windows Forms requiert toujours l'utilisation de la technologie du navigateur Web. Vous pouvez utiliser les scénarios d'intégration suivants avec l'accès URL et les Windows Forms :
Afficher un rapport dans une application Windows Form en démarrant un navigateur Web par programme.
Utiliser le contrôle WebBrowser sur un Windows Form pour afficher un rapport.
Démarrage d'Internet Explorer à partir d'un Windows Form
Vous pouvez utiliser la classe Process pour accéder à un processus qui s'exécute sur un ordinateur. La classe Process est une construction Microsoft.NET Framework utile pour démarrer, arrêter, contrôler et surveiller des applications. Pour consulter un rapport spécifique dans votre base de données du serveur de rapports, vous pouvez démarrer le processus IExplore, en passant l'URL au rapport. L'exemple de code suivant peut être utilisé pour démarrer Microsoft Internet Explorer et passer une URL de rapport spécifique lorsque l'utilisateur clique sur un bouton dans un 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);
}
}
Pour plus d'informations sur la syntaxe spécifique d'une chaîne d'accès URL du serveur de rapports, consultez Syntaxe de l'accès URL.
Incorporation d'un contrôle de navigateur Web sur un Windows Form
Si vous ne souhaitez pas consulter votre rapport dans un navigateur Web externe, vous pouvez incorporer de façon transparente un navigateur Web dans le cadre de votre Windows Form à l'aide du contrôle WebBrowser.
Pour ajouter le contrôle WebBrowser à votre Windows Form
Créez une application Windows dans Microsoft, Visual C# ou MicrosoftVisual Basic.
Localisez le contrôle WebBrowser dans la boîte de dialogue Boîte à outils.
Si la Boîte à outils n'est pas visible, vous pouvez y accéder en cliquant sur l'élément de menu Affichage et en sélectionnant Boîte à outils.
Faites glisser le contrôle WebBrowservers l'aire de conception de votre Windows Form.
Le contrôle WebBrowsernommé webBrowser1 est ajouté au Formulaire
Dirigez le contrôle WebBrowser vers une URL en appelant sa méthode Navigate. Vous pouvez assigner une chaîne d'accès URL spécifique à votre contrôle WebBrowser au moment de l'exécution comme l'illustre l'exemple suivant.
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);