'宣言 Public Property Subreport As FlexReport
'使用法 Dim instance As Field Dim value As FlexReport instance.Subreport = value value = instance.Subreport
public FlexReport Subreport {get; set;}
'宣言 Public Property Subreport As FlexReport
'使用法 Dim instance As Field Dim value As FlexReport instance.Subreport = value value = instance.Subreport
public FlexReport Subreport {get; set;}
サブレポートは、別のレポートに挿入されるレポートです。サブレポートは、いくつかのレポートを 1 つのレポートに まとめる場合に便利です。たとえば、いくつかのサブレポートを 1 つのレポートに組み込んだ メインレポートを作成できます。また、メインレポートを使用して詳細情報を表示し、サブレポートを使用して各グループの先頭に サマリーデータを表示できます。
実用的な例として、コントロールに付属する NWIND.XML サンプルの "Sales By Category" レポートや "Sales By Year" レポートを参照してください。
フィールドをサブレポートとして定義するには、サブレポートをロードした後に、フィールドの Subreport プロパティにサブレポートコントロールを割り当てます。
次に、サブレポートフィールドの Text プロパティ(これは、 Microsoft Access サブレポートの LinkChildFields/LinkMasterFields プロパティの設定と同じ)を使用して、サブレポートをメインレポートにリンクします。 サブレポートフィールドの Text プロパティは、フィルタとして使用されます。このプロパティは、メインレポートの現在のレコードに基づいて、 サブレポートのレンダリングに使用されるソースレコードセット内のレコードを指定します。
メインレポートがレンダリングされ、サブレポートフィールドに達すると、Text 式が評価され、 その結果がサブレポートのフィルタ条件として使用されます。
リンク式の作成は難しくありませんが、引用符を含む文字列を作成する際に、 これらの内部の引用符を二重("")にする必要があるため、多少複雑になります。
レポートデザイナを使用してレポートを作成する場合、コードでリンク式を作成する必要は ありません。代わりに、サブレポートフィールドを右クリックし、[サブレポートのリンク]メニューを選択します。ダイアログボックスが表示されるので、 ここでマスターフィールドと詳細フィールドを選択できます。[OK]をクリックすると、レポートデザイナによって自動的にリンク式が作成され、 サブレポートフィールドの Text プロパティに割り当てられます。
サブレポートフィールドの FieldBase.AutoHeight プロパティは、通常、AutoSizeBehavior.CanGrow に設定されます。これにより、すべてのレコードを表示できるようにサブレポートフィールドを 広げることができます。
サブレポートに別のサブレポートを入れることもできます。ネストできるレポートの深さに決められた制限はありません。 ただし、レポートの循環参照は指定できません。つまり、レポートはサブレポートを介して自分自身を参照することは できません。
// サブレポートをロードし、それをメインレポートのフィールドに割り当てます string sSub = "Sales By Category Subreport"; c1Sub.Load("NWIND.XML", sSub); c1rMain.Fields[sSub].Subreport = c1Sub; // メインレポートとサブレポートの接続を設定します c1rMain.Fields[sSub].Calculated = true; c1rMain.Fields[sSub].Text = "\"CategoryName = '\" & [CategoryName] & \"'\"";