本サンプルでは、レポートを実行時に継承する方法および、設計時に継承する方法を紹介します。サンプルのレポートは、実行時の継承および設計時の継承のいずれも、親クラスと子クラスの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クラスで設定しています。
プロジェクトの構造
ViewerForm
rptDesignBaseレポート
rptDesignChildレポート
rptInheritBaseレポート
rptInheritChildレポート