FlexReport for WinForms
Subreport プロパティ (Field)
使用例 


C1.Win.FlexReport.5 アセンブリ > C1.Win.FlexReport 名前空間 > Field クラス : Subreport プロパティ
フィールド内にレンダリングされる別のレポート( サブレポート)への参照を取得または設定します。
シンタックス
'宣言
 
Public Property Subreport As C1FlexReport
'使用法
 
Dim instance As Field
Dim value As C1FlexReport
 
instance.Subreport = value
 
value = instance.Subreport
public C1FlexReport Subreport {get; set;}
解説

サブレポートは、別のレポートに挿入されるレポートです。サブレポートは、いくつかのレポートを 1 つのレポートに まとめる場合に便利です。たとえば、いくつかのサブレポートを 1 つのレポートに組み込んだ メインレポートを作成できます。また、メインレポートを使用して詳細情報を表示し、サブレポートを使用して各グループの先頭に サマリーデータを表示できます。

実用的な例として、コントロールに付属する NWIND.XML サンプルの "Sales By Category" レポートや "Sales By Year" レポートを参照してください。

フィールドをサブレポートとして定義するには、サブレポートをロードした後に、フィールドの Subreportプロパティにサブレポートコントロールを割り当てます。

次に、サブレポートフィールドの Textプロパティ(これは、Microsoft Access サブレポートの LinkChildFields/LinkMasterFieldsプロパティの設定と同じ)を使用して、サブレポートをメインレポートにリンクします。サブレポートフィールドの Textプロパティは、フィルタとして使用されます。このプロパティは、メインレポートの現在のレコードに基づいて、サブレポートのレンダリングに使用されるソースレコードセット内のレコードを指定します。

メインレポートがレンダリングされ、サブレポートフィールドに達すると、 Text式が評価され、その結果がサブレポートのフィルタ条件として使用されます。

リンク式の作成は難しくありませんが、引用符を含む文字列を作成する際に、これらの内部の引用符を二重("")にする必要があるため、多少複雑になります。

レポートデザイナを使用してレポートを作成する場合、コードでリンク式を作成する必要は ありません。代わりに、サブレポートフィールドを右クリックし、 [サブレポートのリンク]メニューを選択します。ダイアログボックスが表示されるので、ここでマスターフィールドと詳細フィールドを選択できます。[OK]をクリックすると、レポートデザイナによって自動的にリンク式が作成され、サブレポートフィールドの Textプロパティに割り当てられます。

サブレポートフィールドの CanGrowプロパティは、通常、true に設定されます。これにより、すべてのレコードを表示できるようにサブレポートフィールドを 広げることができます。

サブレポートに別のサブレポートを入れることもできます。ネストできるレポートの深さに決めれた制限はありません。ただし、レポートの循環参照は指定できません。つまり、レポートはサブレポートを介して自分自身を参照することは できません。

使用例
// サブレポートをロードし、それをメインレポートのフィールドに割り当てます
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] & \"'\"";
参照

Field クラス
Field メンバ