 |
重要: 本トピックで紹介しているWebサービスを使用してのActiveReports 11.0J Serverとの連携方法は、ActiveReports 9.0J Serverとの互換性のために残されています。新規でActiveReports 11.0J Serverとの連携するアプリケーション等を開発する場合は、REST APIを使用してください。
|
開発者がActiveReports for .NETで作成したすべてのタイプのレポートは、UploadResourceメソッドを使用してサーバーにアップロードできます。このトピックでは、セクションレポート(XML)をアップロードする方法について説明します。
- Visual Studioの[ファイル]メニューから[新しいプロジェクト]を選択します。
- [新しいプロジェクト]ダイアログが表示されたら、テンプレートリストで[Visual C#]、または[Visual Basic]、次に[Windows]の順にクリックし、[コンソールアプリケーション]を選択します。
- プロジェクトの名前をUploadReportに変更し、[OK]をクリックします。
 |
メモ: プロジェクトのターゲットフレームワークは.NET Framework 4.5以上に設定されている必要があります。 |
- Visual Studioの[プロジェクト]メニューから[サービス参照の追加]を選択します。
- [サービス参照の追加]ダイアログが表示されたら、[アドレス]に以下のように入力します。
以下をコピーして[アドレス]ボックスに貼り付け、"localhost:8080"の部分を、ActiveReports 11.0J ServerをインストールしたサイトのURL、およびポートに置き換えます。 |
コードのコピー
|
http://localhost:8080/ReportService.svc |
- [移動]をクリックします。[サービス]ペインにReportServiceが表示されたら、それを展開してサービスインタフェースを選択します。そのインタフェースで使用可能な操作が右側のペインに表示されます。
- 使用する名前空間の名前をReportServiceに変更し、[OK]をクリックします。追加した参照が[ソリューションエクスプローラ]に表示されます。
- app.configファイルを開き、endpoint要素内のaddress属性に、手順5で設定したサービスのアドレスが正しく設定されていることを確認してください。正しく設定されていない場合は、手順5で設定したアドレスに置き換えてください。
app.configファイル内のendpoint要素内のaddress属性の値を確認します。 |
コードのコピー
|
<client> <endpoint address="http://localhost:8080/ReportService.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IReportService" contract="ReportService.IReportService" name="WSHttpBinding_IReportService" /> </client>
|
 |
注意:ActiveReports Serverをインストールした先のサーバーの構成や設定によっては、サービスのアドレスが構成ファイルに正しく自動設定されない場合があります。 |
- Program.cs、またはModule1.vbで、以下のようにコードの先頭にusing/Importsステートメントを追加します。
Visual Basic
Visual Basicコード (コードの先頭にあるImports文のリストに追加します。) |
コードのコピー
|
Imports System.IO
Imports UploadReport.ReportService
|
C#
C#コード (コードの先頭にあるusing文のリストに追加します。) |
コードのコピー
|
using System.IO;
using UploadReport.ReportService;
|
- Program.cs、またはModule1.vbで、Mainメソッドに以下のコードを追加します。
Visual Basic
Visual Basicコード (Module1モジュール定義のMainメソッドに以下のコードを貼り付けます。) |
コードのコピー
|
Dim filepath As String = "C:\section_report.rpx"
Dim serverUserName = "USER"
Dim serverUserPwd = "PASS"
Dim uploadOptions = New UploadOptions() With { _
.Overwrite = True _
}
Dim reportService = New ReportServiceClient("WSHttpBinding_IReportService")
Dim securityToken = reportService.Login(serverUserName, serverUserPwd, Nothing, True)
' Name: アップロード後の帳票の表示名。
' ReportType: アップロードするレポートの形式。
' ClassName: クラス名。コードベースのセクションレポートをアップロードするときに指定します。
' AssemblyResourceId: アセンブリのリソースID。コードベースのセクションレポートをアップロードするときに指定します。
Dim reportDescription As New ReportDescription()
With reportDescription
.Name = "テスト帳票"
.ReportType = ReportType.SectionReport
.ClassName = Nothing
.AssemblyResourceId = Nothing
End With
reportService.UploadResource(securityToken, ReportDescription, Convert.ToBase64String(File.ReadAllBytes(filepath)), UploadOptions)
|
C#
C#コード (Programクラス定義のMainメソッドに以下のコードを貼り付けます。) |
コードのコピー
|
string filepath = @"C:\section_report.rpx";
var serverUserName = "USER";
var serverUserPwd = "PASS";
var uploadOptions = new UploadOptions { Overwrite = true };
var reportService = new ReportServiceClient("WSHttpBinding_IReportService");
var securityToken = reportService.Login(serverUserName, serverUserPwd, null, true);
// Name: アップロード後の帳票の表示名。
// ReportType: アップロードするレポートの形式。
// ClassName: クラス名。コードベースのセクションレポートをアップロードするときに指定します。
// AssemblyResourceId: アセンブリのリソースID。コードベースのセクションレポートをアップロードするときに指定します。
var reportDescription = new ReportDescription()
{
Name = "テスト帳票",
ReportType = ReportType.SectionReport,
ClassName = null,
AssemblyResourceId = null
};
reportService.UploadResource(securityToken, reportDescription, Convert.ToBase64String(File.ReadAllBytes(filepath)), uploadOptions);
|
- プロジェクトを実行します。