GrapeCity ActiveReports for .NET 16.0J
継承 サンプル
ActiveReportsユーザーガイド > サンプルとチュートリアル > サンプル > Samples > APIのサンプル > セクションレポートのサンプル > 継承 サンプル

本サンプルでは、レポートを実行時に継承する方法および、設計時に継承する方法を紹介します。サンプルのレポートは、実行時の継承および設計時の継承のいずれも、親クラスと子クラスの2つのクラスから構成されています。

フォルダ

Visual Basic.NET

<User Folder>\ActiveReportsNET16\Samples\API\Section\Inheritance\VB.NET

C#

<User Folder>\ActiveReportsNET16\Samples\API\Section\Inheritance\C#

実行時の機能

サンプルを実行すると、[レポート実行時の継承][レポート設計時の継承]の2つのボタンがフォーム上に表示されます。ボタンをクリックすると、実行時または設計時にレポートクラスを継承して作成したレポートを表示します。


レポート実行時の継承
rptInheritBaseクラスは、フォーム上の[レポート実行時の継承]ボタンをクリックした時に生成されるレポートの継承元となるクラスです。rptInheritBaseクラスは、GrapeCity.ActiveReports名前空間のSectionReportクラスを親クラスとして継承しています。このクラスでは、DataInitializeイベントとFetchDataイベントを使用し、csvファイルの読み込みとデータフィールドへの値の設定を行っています。また、csvファイルのパスを受け取るCsvPathプロパティを定義しています。
rptInheritChildクラスは、rptInheritBaseクラスを継承し、レポートのデザインのみを定義しているクラスです。コンストラクタで、継承元のイベントハンドラを追加し、CsvPathプロパティにcsvファイルのパスを設定することで、継承元のクラスであるBaseReportのイベントが実行され、データの読み込みが行われます。

レポート設計時の継承
rptDesignBaseクラスは、フォーム上の[レポート設計時の継承]ボタンをクリックした時に生成されるレポートの継承元となるクラスです。rptDesignBaseクラスは、GrapeCity.ActiveReports名前空間のSectionReportクラスを親クラスとして継承しています。このクラスでは、PageHeaderセクションとPageFooterセクションに継承させたいコントロール(レポートのタイトル、ページ番号およびページ数)を配置しています。rptDesignChildクラスは、rptDesignBaseクラスを継承したクラスです。Detailセクションのみデザインを定義しており、PageHeaderセクションやPageFooterセクションについては、継承元であるrptDesignBaseクラスのデザインを使用します。なお、データソースについては、rptDesignChildクラスで設定しています。

注意: プロジェクトを一度もビルドしていない状態で、ソリューションエクスプローラから継承先のクラスであるrptInheritChildまたはrptDesignChildのレポートデザイナを開くとエラーが発生します。この場合は、プロジェクトをビルドした後にレポートを開いてください。

プロジェクトの構造

ViewerForm

指定したレポートのインスタンスを作成し、レポートをViewerコントロールに表示します。

rptDesignBaseレポート

レポート設計時の継承の親クラスです。継承されるPageHeaderセクションおよびPageFooterセクションのレイアウトを定義するクラスです。

rptDesignChildレポート

レポート設計時の継承の子クラスです。Detailセクション上のレイアウトを定義し、Detailセクション上に配置されたコントロールのDataFieldプロパティに値を設定します。また、[レポート データソース]ダイアログを使用して、レポートに出力するデータソースを設定します。

rptInheritBaseレポート

レポート実行時の継承の親クラスです。DataInitializeイベントおよびFetchDataイベントを使用し、csvファイルの読み込みおよびデータフィールドに値を設定するクラスです。

rptInheritChildレポート

レポート実行時の継承の子クラスです。各コントロールのレイアウトおよび、各コントロールのDataFieldプロパティに値を設定します。
関連トピック