管理者ガイド > サンプルとチュートリアル > チュートリアル > ReportList Webコントロールの使用 |
重要: ReportListコントロールは、ActiveReports 9.0J Serverとの互換性のために残されています。本コントロールは将来的に今後のバージョンアップで使用できなくなる可能性があります。新規でActiveReports 11.0J Serverとの連携するアプリケーション等を開発する場合は、REST APIを使用してください。 |
ActiveReports 11.0J ServerのSDKに含まれているReportListコントロールを利用して、ActiveReports 11.0J Serverをインストールしたサイトからレポートの一覧を取得し、各レポートをPDF、Word、Excel形式にエクスポートする機能を、ユーザーが開発した独自のアプリケーションの中に組み込むことができます。このチュートリアルでは、ログイン画面から資格情報を入力し、その情報をもとにサイトからレポートリストを取得する方法を紹介します。また、資格情報をWeb.configファイル内に埋め込んでリストを取得する方法も紹介します。
メモ: 資格情報をWeb.configファイルに埋め込んで実行する場合は、このセクションの手順は省略してください。 |
ログインページのコントロール
コントロール | Textプロパティ |
---|---|
Label | ユーザー名: |
TextBox | ? |
Label | パスワード: |
TextBox | ? |
Button | ログイン |
Visual Basic
Visual Basicコード (SessionStorage.vb内に貼り付けます。) |
コードのコピー
|
---|---|
Imports System Imports System.Web Namespace App_Code Public Class SessionStorage Private Const SecurityTokenKey As String = "{DEBDB016-040A-48f4-B568-897E6D410919}" Public Shared Property SecurityToken() As String Get Return TryCast(HttpContext.Current.Session(SecurityTokenKey), String) End Get Set(value As String) HttpContext.Current.Session(SecurityTokenKey) = value End Set End Property End Class End Namespace |
C#
C#コード (SessionStorage.cs内に貼り付けます。) |
コードのコピー
|
---|---|
using System; using System.Web; namespace App_Code { public static class SessionStorage { private const string SecurityTokenKey = "{DEBDB016-040A-48f4-B568-897E6D410919}"; public static string SecurityToken { get { return HttpContext.Current.Session[SecurityTokenKey] as string; } set { HttpContext.Current.Session[SecurityTokenKey] = value; } } } } |
Visual Basic
Visual Basicコード (ファイルの先頭に貼り付けます。) |
コードのコピー
|
---|---|
Imports ActiveReports.Server.ReportControls.Servicing Imports App_Code |
C#
C#コード (ファイルの先頭に貼り付けます。) |
コードのコピー
|
---|---|
using ActiveReports.Server.ReportControls.Servicing; using App_Code; |
注意: 後述の「ReportListコントロールをWebフォームに追加する」の手順を必ず実行し、「ActiveReports.Server.ReportControls.dll」への参照を追加してください。この参照を追加しないと、以下の行でエラーが発生します。 using ActiveReports.Server.ReportControls.Servicing; |
Visual Basic
Visual Basicコード(ボタンクリックイベント内に貼り付けます。) |
コードのコピー
|
---|---|
Dim username = TextBox1.Text Dim password = TextBox2.Text Dim reportService = New ReportServiceProxy() SessionStorage.SecurityToken = Nothing Dim securityToken = reportService.Login(username, password, Nothing, False) SessionStorage.SecurityToken = securityToken Server.Transfer("Default2.aspx") |
C#
C#コード(ボタンクリックイベント内に貼り付けます。) |
コードのコピー
|
---|---|
var username = TextBox1.Text; var password = TextBox2.Text; var reportService = new ReportServiceProxy(); SessionStorage.SecurityToken = null; var securityToken = reportService.Login(username, password, null, false); SessionStorage.SecurityToken = securityToken; Server.Transfer("Default2.aspx"); |
注意: 後述の「ReportListコントロールをWebフォームに追加するには」の手順を必ず実行し、「ActiveReports.Server.ReportControls.dll」への参照を追加してください。この参照を追加しないと、以下の行でエラーが発生します。 Dim reportService = New ReportServiceProxy() |
ASP.NETの互換モードを有効にする
ASP.NETコード (<configuration>タグと</configuration>タグの間に貼り付けます。) |
コードのコピー
|
---|---|
<system.serviceModel> <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> </system.serviceModel> |
メモ: このセクションの手順は、ASP.NET Webサイトを使用する場合に必要です。ASP.NET Webアプリケーションを使用する場合は、ReportListコントロールをWebフォーム上にドロップしたときに、自動でサービスファイルが追加されるので、このセクションの手順は省略してください。 |
WCFサービス用の.svcファイルを作成する
ASP.NETコード |
コードのコピー
|
---|---|
<%@ ServiceHost Service="ActiveReports.Server.ReportControls.Servicing.ReportServiceProxy" Factory="ActiveReports.Server.ReportControls.Servicing.ReportServiceHostFactory" %> |
ReportListコントロールをツールボックスに追加する手順
メモ: ActiveReports.Server.ReportControls.dllは、デフォルトでは...\ActiveReports 11.0J Server\SDKフォルダに配置されています。 |
メモ: ASP.NET Webサイトを使用する場合、.svcファイルは自動で追加されません。前述の「WCFサービス用の.svcファイルを作成するには」の手順を行い、「ReportService.svc」を手動で追加してください。 |
メモ: ASP.NET Webサイトを使用する場合、ReportServicePathプロパティは自動で設定されないので、手動で「ReportService.svc」のファイルのパスを設定してください。 |
メモ: 設計時に、ReportListコントロールを日本語化して使用するには、グローバルアセンブリキャッシュ(GAC)に以下のアセンブリファイルをインストールする必要があります。これらのファイルは、デフォルトでは...\ActiveReports 11.0J Server\SDKフォルダ、および...\ActiveReports 11.0J Server\SDK\jaフォルダに配置されています。 ・ActiveReports.Server.ReportControls.dll ・ActiveReports.Server.ReportControls.resources.dll グローバルアセンブリキャッシュへのインストール方法は、以下のMSDNライブラリ等を参照してください。 MSDNライブラリ [方法 : グローバル アセンブリ キャッシュにアセンブリをインストールする] |
方法1: グローバルアプリケーションクラスのコードを使用してセキュリティトークンとActiveReports 11.0J Serverホストを指定する
メモ: ログインページを作成した場合は、こちらの手順を行います。 |
Servicing名前空間をインポートする
ASP.NETコード (Application Language行の下に貼り付けます。) |
コードのコピー
|
---|---|
<%@ Import Namespace="ActiveReports.Server.ReportControls.Servicing" %> <%@ Import Namespace="App_Code" %> |
メモ: ASP.NET Webアプリケーションを使用する場合は、「Global.asax.vb/Global.asax.cs」ファイルにディレクティブを追加します。
|
Visual Basic
Visual Basicコード(Global.asaxファイル内の、Application_Startイベントの直後に貼り付けます。) |
コードのコピー
|
---|---|
Private Shared Sub ResolveRemoteEndpoint(remoteEndpoint As RemoteEndpoint) remoteEndpoint.Address = "http://localhost:8080" remoteEndpoint.SecurityToken = SessionStorage.SecurityToken End Sub |
C#
C#コード (Global.asaxファイル内の、Application_Startイベントの直後に貼り付けます。) |
コードのコピー
|
---|---|
static void ResolveRemoteEndpoint(RemoteEndpoint remoteEndpoint) { remoteEndpoint.Address = "http://localhost:8080"; remoteEndpoint.SecurityToken = SessionStorage.SecurityToken; } |
Visual Basic
Visual Basicコード(Application_Startイベント内に貼り付けます。) |
コードのコピー
|
---|---|
AddHandler ReportServiceProxy.ResolveRemoteEndpoint, AddressOf ResolveRemoteEndpoint |
C#
C#コード (Application_Startイベント内に貼り付けます。) |
コードのコピー
|
---|---|
ReportServiceProxy.ResolveRemoteEndpoint += ResolveRemoteEndpoint; |
方法2: Webアプリケーションのweb.configファイルでユーザー名、パスワード、およびActiveReports 11.0J Serverホストを指定する
メモ: ログインページを作成せず、資格情報などをWeb.configファイル内に埋め込む場合は、こちらの手順を行います。 |
ASP.NETコード (web.configファイル内の<configuration>タグの直下に貼り付けます。) |
コードのコピー
|
---|---|
<configSections> <sectionGroup name="activereports.server"> <section name="reportServiceProxy" type="ActiveReports.Server.ReportControls.Configuration.ActiveReportsServerSection, ActiveReports.Server.ReportControls, Version=11.x.xxxx.1, Culture=neutral, PublicKeyToken=d557f2f30a260da2" allowDefinition="Everywhere" /> </sectionGroup> </configSections> <activereports.server> |
メモ: "Version=11.x.xxxx.1"の箇所は、ご利用のActiveReports 11.0J Serverのバージョン番号にあわせて変更してください。 |
実行時に、ReportListコントロールはActiveReports 11.0J Serverからすべてのレポートを取得し、各レポートをPDF、Word、およびExcelにエクスポートするボタンが作成されます。