| PowerTools ActiveReports for .NET 11.0J > ActiveReportsユーザーガイド > サンプルとチュートリアル > チュートリアル > セクションレポートのチュートリアル > レイアウト > サブレポート - XMLデータ |
XMLデータの処理方法は、他のデータ類とは異なります。このチュートリアルでは、親レポートでXMLデータソースに連結されたサブレポートの設定方法を紹介します。
このトピックでは、以下のタスクを行います。
![]() |
メモ: このチュートリアルでは、Customerデータ(Customer.xml)を使用しています。Customerデータ(..ActiveReportsNET11\Data\Customer.xml)へのアクセス権限が必要です。 |
チュートリアルを完了すると、次のようなレポートが作成されます。
Visual StudioプロジェクトにActiveReportを追加する
詳細は、「プロジェクトにレポートを追加する」参照してください。
親レポート(rptMain)をXMLデータソースに接続する
[//CUSTOMER]と入力します。親レポート(rptMain)のレイアウトを作成する
| プロパティ名 | プロパティの値 |
|---|---|
| Text | 顧客別の注文 |
| Location | 0, 0 in |
| Size | 6.5, 0.25 in |
| Font Size | 14 |
| Alignment | Center |
TextBox1
| プロパティ名 | プロパティの値 |
|---|---|
| DataField | NAME |
| Location | 1.2, 0 in |
| Size | 2, 0.2 in |
Label1
| プロパティ名 | プロパティの値 |
|---|---|
| Text | 顧客名 |
| Location | 0, 0 in |
| Size | 1.2, 0.2 in |
| Font Bold | True |
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 |
子レポート(rptSub)のレイアウトを作成する
| プロパティ名 | プロパティの値 |
|---|---|
| CanShrink | True |
| BackColor | LightSteelBlue |
![]() |
ヒント: レポートの最終的な出力結果に色を適用したくない場合であっても、サブレポートの背景に色を使用することで、レイアウト関連の問題を容易に見つけることができます。 |
TextBox1
| プロパティ名 | プロパティの値 |
|---|---|
| DataField | TITLE |
| Name | txtTitle |
| Location | 0, 0 in |
| Size | 2.9, 0.2 in |
TextBox2
| プロパティ名 | プロパティの値 |
|---|---|
| DataField | PRICE |
| Name | txtPrice |
| Location | 3, 0 in |
| Size | 1, 0.2 in |
| Alignment | Right |
| OutputFormat | $#,##0.00 (またはダイアログから通貨を選択します) |
子レポート(rptSub)の新インスタンスを作成する
![]() |
注意: Formatイベントでサブレポートの新しいインスタンスを作成しないでください。Formatを実行するごとに新しいサブレポートが作成されるので、大量のメモリが消費されます。 |
Visual Basic
| Visual Basicコード(ReportStartイベントの上に貼り付けます) |
コードのコピー
|
|---|---|
Dim rpt As rptSub
|
|
| Visual Basicコード(ReportStartイベント内に貼り付けます) |
コードのコピー
|
|---|---|
rpt = New rptSub |
|
C#
| C#コード(ReportStartイベントの上貼り付けます) |
コードのコピー
|
|---|---|
private rptSub rpt; |
|
| C# コード(ReportStartイベント内に貼り付けます) |
コードのコピー
|
|---|---|
rpt = new rptSub(); |
|
親レポートのデータのサブセットを子レポートに渡す
親レポートのデータのサブセットを子レポートに渡すには、以下の手順を行います。
Visual Basic
| Visual Basicコード(Formatイベント内に貼り付けます) |
コードのコピー
|
|---|---|
Dim xmlDS As New GrapeCity.ActiveReports.Data.XMLDataSource
xmlDS.NodeList = CType(CType(Me.DataSource, GrapeCity.ActiveReports.Data.XMLDataSource).Field("ORDER/ITEM", True), System.Xml.XmlNodeList)
rpt.DataSource = xmlDS
SubReport1.Report = rpt
|
|
C#
| C#コード(Formatイベント内に貼り付けます) |
コードのコピー
|
|---|---|
GrapeCity.ActiveReports.Data.XMLDataSource xmlDS = new GrapeCity.ActiveReports.Data.XMLDataSource();
xmlDS.NodeList = (System.Xml.XmlNodeList)((GrapeCity.ActiveReports.Data.XMLDataSource) this.DataSource).Field("ORDER/ITEM", true);
rpt.DataSource = xmlDS;
subReport1.Report = rpt;
|
|
レポートを表示する