JSONデータの処理方法は、他のデータ類とは異なります。このチュートリアルでは、親レポートでJSONデータソースに連結されたサブレポートの設定方法を紹介します。
このトピックでは、以下のタスクを行います。
チュートリアルを完了すると、次のようなレポートが作成されます。
Visual StudioプロジェクトにActiveReportを追加する
詳細は、「クイックスタート」参照してください。
親レポート(MainReport)をJSONデータソースに接続する
| JSONファイルのURL |
コードのコピー
|
|---|---|
https://demodata.grapecity.com/northwind/odata/v1/Categories?$expand=Products
|
|
[接続文字列]セクションには、生成された接続文字列が次のように表示されます。
| 接続文字列 |
コードのコピー
|
|---|---|
jsondoc=https://demodata.grapecity.com/northwind/odata/v1/Categories?$expand=Products
|
|
| クエリ |
コードのコピー
|
|---|---|
$.value[*] |
|
親レポート(MainReport)のレイアウトを作成する
| プロパティ名 | プロパティの値 |
|---|---|
| Text | 商品詳細 |
| Location | 0, 0 in |
| Size | 6.5, 0.25 in |
| Font | Arial, 14pt, style=Bold |
| Alignment | Center |
Label1
| プロパティ名 | プロパティの値 |
|---|---|
| Text | カテゴリ名: |
| Location | 0, 0 in |
| Size | 1.2, 0.2 in |
| Font Bold | True |
TextBox1
| プロパティ名 | プロパティの値 |
|---|---|
| DataField | CategoryName |
| Location | 1.2, 0 in |
| Size | 2, 0.2 in |
Label2
| プロパティ名 | プロパティの値 |
|---|---|
| Text | 商品: |
| Location | 1.2, 0.25 in |
| Size | 1, 0.2 in |
| Font Bold | True |
Subreport
| プロパティ名 | プロパティの値 |
|---|---|
| Location | 2.3, 0.25 in |
| Size | 4, 1 in |
子レポート(SubReport)のレイアウトを作成する
| プロパティ名 | プロパティの値 |
|---|---|
| CanShrink | True |
| BackColor | WhiteSmoke |
TextBox1
| プロパティ名 | プロパティの値 |
|---|---|
| DataField | ProductName |
| Name | txtProductName |
| Location | 0, 0 in |
| Size | 2.9, 0.2 in |
TextBox2
| Property Name | プロパティの値 |
|---|---|
| DataField | UnitPrice |
| Name | txtUnitPrice |
| Location | 3, 0 in |
| Size | 1, 0.2 in |
| Alignment | Right |
| OutputFormat | ¥#,##0.00(またはダイアログで通貨を選択します) |
子レポート(SubReport)の新インスタンスを作成する
Visual Basic
| Visual Basicコード(ReportStartイベントの上に貼り付けます) |
コードのコピー
|
|---|---|
| Dim rpt As SubReport | |
| Visual Basicコード(ReportStartイベント内に貼り付けます) |
コードのコピー
|
|---|---|
| rpt = New SubReport | |
C#
| C#コード(ReportStartイベントの上貼り付けます) |
コードのコピー
|
|---|---|
| private SubReport rpt; | |
| C#コード(ReportStartイベント内に貼り付けます) |
コードのコピー
|
|---|---|
| rpt = new SubReport(); | |
親レポートのデータのサブセットを子レポートに渡す
親レポートのデータのサブセットを子レポートに渡すには、以下の手順を行います。
Visual Basic
| Visual Basicコード(Formatイベント内に貼り付けます) |
コードのコピー
|
|---|---|
Dim jsonDS As New GrapeCity.ActiveReports.Data.JsonDataSource
jsonDS.JsonData = (CType(Me.DataSource, GrapeCity.ActiveReports.Data.JsonDataSource)).Field("Products").ToString()
jsonDS.JsonPath = "$.[*]"
rpt.DataSource = jsonDS
SubReport1.Report = rpt
|
|
C#
| C#コード(Formatイベント内に貼り付けます) |
コードのコピー
|
|---|---|
GrapeCity.ActiveReports.Data.JsonDataSource jsonDS = new GrapeCity.ActiveReports.Data.JsonDataSource();
jsonDS.JsonData = ((GrapeCity.ActiveReports.Data.JsonDataSource)this.DataSource).Field("Products").ToString();
jsonDS.JsonPath = "$.[*]";
rpt.DataSource = jsonDS;
subReport1.Report = rpt;
|
|
レポートを表示する