管理者ガイド > サンプルとチュートリアル > チュートリアル > セクションレポート(XML)の出力 |
重要: 本トピックで紹介しているWebサービスを使用してのActiveReports 11.0J Serverとの連携方法は、ActiveReports 9.0J Serverとの互換性のために残されています。新規でActiveReports 11.0J Serverとの連携するアプリケーション等を開発する場合は、REST APIを使用してください。 |
ActiveReports Serverに保存されたレポートは、RenderReportメソッドを使用してPDFやExcelなどの形式で出力することができます。このトピックでは、セクションレポート(XML)をPDF形式で出力する方法について説明します。
メモ: セクションレポート(コード)やページレポートの場合も、同様の手順でPDF形式での出力が可能です。 |
メモ: プロジェクトのターゲットフレームワークは.NET Framework 4.5以上に設定されている必要があります。 |
以下をコピーして[アドレス]ボックスに貼り付け、"localhost:8080"の部分を、ActiveReports 11.0J ServerをインストールしたサイトのURL、およびポートに置き換えます。 |
コードのコピー
|
---|---|
http://localhost:8080/ReportService.svc |
app.configファイル内のendpoint要素内のaddress属性の値を確認します。 |
コードのコピー
|
---|---|
<client> |
注意:ActiveReports Serverをインストールした先のサーバーの構成や設定によっては、サービスのアドレスが構成ファイルに正しく自動設定されない場合があります。 |
Visual Basic
Visual Basicコード (コードの先頭にあるImports文のリストに追加します。) |
コードのコピー
|
---|---|
Imports System.IO Imports System.Net Imports RenderReport.ReportService |
C#
C#コード (コードの先頭にあるusing文のリストに追加します。) |
コードのコピー
|
---|---|
using System.IO; using System.Net; using RenderReport.ReportService; |
Visual Basic
Visual Basicコード (Module1モジュール定義のMainメソッドに以下のコードを貼り付けます。) |
コードのコピー
|
---|---|
Dim serverUserName = "USER" Dim serverUserPwd = "PASS" Dim reportService = New ReportServiceClient("WSHttpBinding_IReportService") Dim securityToken = reportService.Login(serverUserName, serverUserPwd, Nothing, True) ' 内部ストレージからレポートの一覧を取得します。 Dim description = reportService.[Select](securityToken, New Query()) ' 出力対象の帳票のレポート情報を取得 Dim TargetRepDescription As New ReportDescription() For Each des As ReportDescription In description If des.Name = "払込取扱票" Then TargetRepDescription = des Exit For End If Next ' PDFで出力 Dim result = reportService.RenderReport(securityToken, TargetRepDescription, New RenderOptions() With {.Extension = "PDF"}) Dim info As RequestInfo Do info = reportService.GetRequestStatus(securityToken, Result.Info.RequestId).Info Loop While info.State = RequestState.Pending OrElse info.State = RequestState.Running If info.State = RequestState.Accomplished Then Using client = New WebClient() client.DownloadFile(http://localhost:8080/cache/ + info.PrimaryUrl, "C:\work\test.pdf") End Using End If |
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; } } // PDFで出力 var result = reportService.RenderReport(securityToken, TargetRepDescription, new RenderOptions { Extension = "PDF" }); RequestInfo info; do { info = reportService.GetRequestStatus(securityToken, result.Info.RequestId).Info; } while (info.State == RequestState.Pending || info.State == RequestState.Running); if (info.State == RequestState.Accomplished) { using (var client = new WebClient()) { client.DownloadFile(http://localhost:8080/cache/ + info.PrimaryUrl, @"C:\work\test.pdf"); } } |