PowerTools ActiveReports for .NET 9.0J > ActiveReportsユーザーガイド > サンプルとチュートリアル > チュートリアル > セクションレポートのチュートリアル > レイアウト > サブレポート - XMLデータ |
XMLデータの処理方法は、他のデータ類とは異なります。このチュートリアルでは、親レポートでXMLデータソースに連結されたサブレポートの設定方法を紹介します。
このトピックでは、以下のタスクを行います。
メモ: このチュートリアルでは、Customerデータ(Customer.xml)を使用しています。Customerデータ(..ActiveReportsNET9\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; |
レポートを表示する