管理者ガイド > サンプルとチュートリアル > チュートリアル > セクションレポート(XML)のダウンロード |
重要: 本トピックで紹介しているWebサービスを使用してのActiveReports 11.0J Serverとの連携方法は、ActiveReports 9.0J Serverとの互換性のために残されています。新規でActiveReports 11.0J Serverとの連携するアプリケーション等を開発する場合は、REST APIを使用してください。 |
ActiveReports Serverに保存されたレポートは、Downloadメソッドを使用してダウンロードして、レポート定義ファイルの形式に保存することができます。このトピックでは、ActiveReports Serverに保存されているセクションレポート(XML)を、アプリケーションを実行するローカル環境にダウンロードする方法を紹介します。
メモ:ページレポートやRDLレポートの場合も、同様の手順でダウンロードが可能です。 |
メモ: プロジェクトのターゲットフレームワークは.NET Framework 4.5以上に設定されている必要があります。 |
以下をコピーして[アドレス]ボックスに貼り付け、"localhost:8080"の部分を、ActiveReports 11.0J ServerをインストールしたサイトのURL、およびポートに置き換えます。 |
コードのコピー
|
---|---|
http://localhost:8080/ReportService.svc |
app.configファイル内のendpoint要素内のaddress属性の値を確認します。 |
コードのコピー
|
---|---|
<client> |
注意:ActiveReports Serverをインストールした先のサーバーの構成や設定によっては、サービスのアドレスが構成ファイルに正しく自動設定されない場合があります。 |
app.configファイル内のbinding要素内に追加します。 |
コードのコピー
|
---|---|
<bindings> <wsHttpBinding> <binding name="WSHttpBinding_IReportService" maxReceivedMessageSize="10000000"> <security mode="None" /> </binding> </wsHttpBinding> </bindings> |
Visual Basic
Visual Basicコード (コードの先頭にあるImports文のリストに追加します。) |
コードのコピー
|
---|---|
Imports System.IO Imports DownloadReport.ReportService |
C#
C#コード (コードの先頭にあるusing文のリストに追加します。) |
コードのコピー
|
---|---|
using System.IO; using DownloadReport.ReportService; |
Visual Basic
Visual Basicコード (Module1モジュール定義のMainメソッドに以下のコードを貼り付けます。) |
コードのコピー
|
---|---|
Dim serverUserName As String = "USER" Dim serverUserPwd As String = "PASS" Dim reportService As New ReportServiceClient("WSHttpBinding_IReportService") ' Loginメソッドを使用してセキュリティトークンを取得 Dim securityToken As String = reportService.Login(serverUserName, serverUserPwd, Nothing, True) ' アップロードされている帳票の一覧情報を取得 Dim query As New ReportService.Query() Dim description As ReportDescription() = reportService.[Select](securityToken, query) ' 出力対象の帳票のレポート情報を取得 Dim TargetRepDescription As New ReportDescription For Each des As ReportDescription In description If des.Name = "払込取扱票" Then TargetRepDescription = des Exit For End If Next ' エンコードされた帳票データを取得 Dim result As DataResult = reportService.Download(securityToken, TargetRepDescription.Id) ' バイト型配列に戻す Dim s As String = result.Data Dim bs As Byte() = System.Convert.FromBase64String(s) ' 保存先のフォルダを指定します。 Dim outFileName As String = "C:\work\PaymentSlip.rpx" Dim outFile As New System.IO.FileStream(outFileName, System.IO.FileMode.Create, System.IO.FileAccess.Write) outFile.Write(bs, 0, bs.Length) outFile.Close() |
C#
C#コード (Programクラス定義のMainメソッドに以下のコードを貼り付けます。) |
コードのコピー
|
---|---|
var serverUserName = "USER"; var serverUserPwd = "PASS"; var reportService = new ReportServiceClient("WSHttpBinding_IReportService"); var securityToken = reportService.Login(serverUserName, serverUserPwd, null, true); // 内部ストレージからレポートの一覧を取得します。 var description = reportService.Select(securityToken, new Query()); // 出力対象の帳票のレポート情報を取得 ReportDescription TargetRepDescription = new ReportDescription(); foreach (var des in description) { if (des.Name == "払込取扱票") { TargetRepDescription = des; break; } } // エンコードされた帳票データを取得 var result = reportService.Download(securityToken, TargetRepDescription.Id); // バイト型配列に戻す string s = result.Data; byte[] bs = System.Convert.FromBase64String(s); // 保存先のフォルダを指定します。 string outFileName = @"C:\work\PaymentSlip.rpx"; System.IO.FileStream outFile = new System.IO.FileStream(outFileName, System.IO.FileMode.Create, System.IO.FileAccess.Write); outFile.Write(bs, 0, bs.Length); outFile.Close(); |