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; |
レポートを表示する