Windows アプリケーションでの URL アクセスの使用
レポート サーバーへの URL アクセスは Web 環境用に最適化されていますが、URL アクセスを使用して Reporting Services レポートを Microsoft Windows アプリケーションに埋め込むこともできます。ただし、Windows フォームに関連する URL アクセスでは、Web ブラウザー テクノロジを使用する必要があります。URL アクセスと Windows フォームでは、次の統合シナリオを使用できます。
プログラムで Web ブラウザーを起動し、Windows フォーム アプリケーションからレポートを表示します。
Windows フォームで WebBrowser コントロールを使用し、レポートを表示します。
Windows フォームからの Internet Explorer の起動
Process クラスを使用して、コンピューターで実行されているプロセスにアクセスできます。Process クラスは、アプリケーションの起動、停止、制御、および監視に役立つ Microsoft .NET Framework の構成要素です。レポート サーバー データベースの特定のレポートを表示するには、レポートへの URL を渡して IExplore プロセスを起動できます。次のコード例を使用すると、ユーザーが Windows フォームのボタンをクリックしたときに Microsoft Internet Explorer が起動し、特定のレポート URL を渡すことができます。
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);
}
}
レポート サーバーの URL アクセス文字列の特定の構文に関する詳細については、「URL アクセスの構文」を参照してください。
Windows フォームへのブラウザー コントロールの埋め込み
外部 Web ブラウザーでレポートを表示したくない場合は、WebBrowser コントロールを使用して、Windows フォームの一部としてシームレスに Web ブラウザーを埋め込むことができます。
Windows フォームに WebBrowser コントロールを追加するには
Microsoft Visual C# または Microsoft Visual Basic で新しい Windows アプリケーションを作成します。
[ツールボックス] ダイアログ ボックスで WebBrowser コントロールを探します。
ツールボックスが表示されていない場合は、[表示] メニュー項目をクリックして [ツールボックス] を選択するとアクセスできます。
WebBrowser コントロールを Windows フォームのデザイン画面にドラッグします。
webBrowser1 という WebBrowser コントロールがフォームに追加されます。
WebBrowser コントロールを URL に指定するには、Navigate メソッドを呼び出します。次の例に示すように、実行時に特定の URL アクセス文字列を WebBrowser コントロールに割り当てることができます。
Dim url As String = "https://localhost/reportserver?/" & _
"AdventureWorks2008R2 Sample Reports/" & _
"Company Sales&rs:Command=Render"
WebBrowser1.Navigate(url)
string url = "https://localhost/reportserver?/" +
"AdventureWorks2008R2 Sample Reports/" +
"Company Sales&rs:Command=Render";
webBrowser1.Navigate(url);