PowerTools ActiveReports for .NET 11.0J > ActiveReportsユーザーガイド > サンプルとチュートリアル > チュートリアル > ページレポート/RDLレポートのチュートリアル > データ > JSONデータを使ったレポート |
このチュートリアルでは、実行時にページレポートをJSONデータソースに接続し、正当なアクセス資格を使用してWebサービスからデータを取得する方法を紹介します。
メモ: このチュートリアルを実行するには、使用するマシンにIIS Expressがインストールされていることが必要になります。 |
このトピックでは、以下のタスクを行います。
メモ: このチュートリアルでは、Customersサンプルデータファイルを使用しています。使用にはcustomers.jsonファイル(..\ActiveReportsNET11\Data\customers.json)へのアクセス権限が必要です。 |
チュートリアルを完了すると、次のようなレポートが作成されます。
Visual StudioプロジェクトにActiveReportsを追加する
レポートレイアウトの追加については、「プロジェクトにレポートを追加する」を参照してください。
レポートをデータソースに接続する
JSONスキーマ |
コードのコピー
|
---|---|
{ |
メモ: 上記のスキーマは、JSONSchema.net(http://jsonschema.net/#/)で利用可能なJSON schema generatorを使用してcustomers.jsonデータ用に作成しました。 |
データセットを追加する
[*]
を選択し、[OK]ボタンをクリックすると、[クエリ]テキストボックスに次のようなクエリが得られます。$.Customers[*]
レポートにコントロールを追加する
プロパティ名 | プロパティの値 |
---|---|
Location | 0.375in, 0.25in |
FontSize | 14pt |
FontStyle | Italic |
Size | 4in, 0.375in |
プロパティ名 | プロパティの値 |
---|---|
Location | 0.375in, 1in |
Size | 4.5in, 1.125in |
FixedSize |
4.5in, 1.125in |
ビューワにレポートを表示する
Form1.cs |
コードのコピー
|
---|---|
// レポートに妥当なデータを返す<see cref="PageDocument.LocateDataSource"/>のハンドラ private void OnLocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args) { object data = null; var dataSourceName = args.DataSourceName; var source = new DataLayer(); if (dataSourceName == "DataSource1") { data = source.CreateData(); } args.Data = data; } // レポートをロードして表示します。 private void Form1_Load(object sender, EventArgs e) { var rptPath = new System.IO.FileInfo(@"..\..\Customers.rdlx"); var definition = new GrapeCity.ActiveReports.PageReport(rptPath); definition.Document.LocateDataSource += OnLocateDataSource; viewer1.LoadDocument(definition.Document); } |
Webサービスをプロジェクトに追加する
このWebサービスは、プロジェクトに追加すると、JSONデータへのアクセス認証を行います。
BasicAuthHttpModule.cs |
コードのコピー
|
---|---|
namespace WebService |
Service.asmx.cs |
コードのコピー
|
---|---|
[System.Web.Script.Services.ScriptMethod(UseHttpGet = true, ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)] |
default.aspx |
コードのコピー
|
---|---|
<form id="form1" runat="server">
|
default.aspx.cs |
コードのコピー
|
---|---|
messageLabel.Text = Properties.Resource.bodyOfMessage; |
名前 | 値 |
---|---|
bodyOfMessage | Json Data SourceサンプルWebServiceが正常に開始されました |
FormatErrorMessage | Message : {0}, StackTrace: {1} |
JsonFilePath | <User folder>\ActiveReportsNET11\Data\customers.json |
DataLayerクラスを追加する
DataLayerクラスはこのチュートリアルで使用するデータを提供します。
注意: "source_url"に設定しているURL中のポート番号("http://localhost:"の後ろの部分)は、IIS Expressが実際に使用するポート番号に変更する必要があります。IIS Expressが使用するポート番号は、WebServiceプロジェクトのプロパティページで確認・変更することができます。 |
DataLayer.cs |
コードのコピー
|
---|---|
// このサンプルで使用するデータを提供します internal sealed class DataLayer |
Web.configファイルを設定する
Web.config |
コードのコピー
|
---|---|
<configuration>
|
レポートを表示する