ActiveReports for .NET 18.0J
SubReport
ActiveReportsユーザーガイド > 概念 > セクションレポートの概念 > セクションレポートのレポートコントロール > SubReport

セクションレポートのSubReportコントロールを使用して、レポートに任意の子レポートを組み込むことができます。レポートにサブレポートコントロールを配置して、ロードするレポートのインスタンスをコード内に作成し、レポートのオブジェクトをサブレポートに関連付けるコードを追加します。

さらに、親レポートからサブレポートにパラメータを渡して、親レポートに関連するデータをサブレポートの各インスタンスに表示することも可能です。

サブレポートを使用するケース

2つ目のレポートを実行して、それを1つ目のレポートに埋め込む処理には高いオーバーヘッドがあるので、このような場合には一般的にサブレポートを使用する方法が最適です。サブレポートは、以下のような場合に使用可能です。

サブレポートではサポートされていないページ依存の要素

サブレポートは親レポートの中に描画されるため、印刷されたページの任意の要素から切り離されています。そのため、ページ依存の機能がサポートされていません。ページに依存する要素はすべて親レポート内に保持する必要があります。サブレポートでサポートされていないページ依存の要素を以下に示します。

コーディングのベストプラクティス

親レポートのReportStartイベントを使用してSubReportコントロールのレポートのインスタンスを作成し、ReportEndイベント内で解放します。このように、親レポートを実行すると1つのサブレポートのインスタンスのみが作成されます。

当該セクションのFormatイベントで、サブレポートコントロールのReportプロパティを使用して、レポートオブジェクトをSubReportコントロールに関連付けます。 

注意: Formatイベントでサブレポートを初期化することは推奨されません。これは、セクションが処理される度に、サブレポートの新しいインスタンスが作成されるためです。また、特に大量のデータを処理するレポートの場合はメモリと処理時間が多く消費されます。

主なプロパティ

プロパティ 解説
CanGrow コントロールの内容に合わせて、コントロールの高さを拡大するかどうかを決定します。
CanShrink フィールドの値に合わせて、フィールドの高さを縮小するかどうかを決定します。
CloseBorder デフォルト設定では、コントロールの下部の罫線はサブレポートの末尾までは描画されません。このプロパティを「True」に設定すると、各ページの下部に描画します(コードでのみ使用可能)。
Report コントロールにレポートオブジェクトを関連付けます(コードでのみ使用可能)。

プロパティ設定ダイアログ

SubReportコントロールの各プロパティは、プロパティ設定ダイアログで設定することができます。このダイアログを表示するには、レポート上のSubReportコントロールを選択した状態で、[プロパティ]ウィンドウの下部にあるコマンドから「プロパティ設定ダイアログ」のリンクをクリックします。表示される[SubReport]ダイアログが、SubReportコントロールのプロパティ設定ダイアログにあたります。
[SubReport]ダイアログでは、以下の各ページでSubReportコントロールのプロパティを設定することができます。

[全般]

[名前]: まだレポートで使用されていない一意なSubReportの名前を入力します。この名前は[レポートエクスプローラ]内、およびXML出力時に表示されます。

[タグ]: SubReportコントロールに保持したい文字列を入力します。コード上でこのプロパティにアクセスするとオブジェクトとして認識されますが、[プロパティ]ウィンドウ、[プロパティ設定ダイアログ]では文字列となります。

[表示する]: SubReportコントロールを非表示にするには、このチェックボックスをOFFにします。

[サブレポートの名前]: このプロパティは、特定の機能を持たない参照用のプロパティですが、RPXレポートファイルへのパス、または相対パスを格納して、それをコードから読み込む場合に役立ちます。

[書式]

[高さ]

[コントロールに合わせて拡大する]: CanGrowプロパティを「False」に設定する場合は、このチェックボックスをOFFにします。

[コントロールに合わせて縮小する]: CanShrinkプロパティを「False」に設定する場合は、このチェックボックスをOFFにします。

関連トピック