| GrapeCity ActiveReports for .NET 12.0J > ActiveReportsユーザーガイド > サンプルとチュートリアル > チュートリアル > ページレポート/RDLレポートのチュートリアル > データ > JSONデータを使ったレポート |
このチュートリアルでは、実行時にページレポートをJSONデータソースに接続し、正当なアクセス資格を使用してWebサービスからデータを取得する方法を紹介します。
![]() |
メモ: このチュートリアルを実行するには、使用するマシンにIIS Expressがインストールされていることが必要になります。 |
このトピックでは、以下のタスクを行います。
![]() |
メモ: このチュートリアルでは、Customersサンプルデータファイルを使用しています。使用にはcustomers.jsonファイル(..\ActiveReportsNET12\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>\ActiveReportsNET12\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>
|
|
レポートを表示する