ActiveReports for .NET 18.0J
レポートテンプレートの継承
ActiveReportsユーザーガイド > 基本操作 > セクションレポートの基本操作 > 共通操作 > レポートテンプレートの継承

セクションレポートでは、基本クラスを作成し、そのレポートを他のレポートで継承可能なテンプレートとして使用することができます。各レポートに共通する機能(たとえば、同一のページヘッダとフッタ)を実装する場合は、共通項目を親レポートに作成し、他のレポートに継承します。継承の方法には「レポートデザイン時の継承」と「レポート実行時の継承」の2通りがあります。

レポートデザイン時の継承

下記のふたつのドロップダウンセクション(『親レポートを作成する』『親レポートのレイアウトを継承する』)で、デザイン時にレポートを継承する方法を示します。ここでは、親レポート(BaseReport)と親レポートを継承した子レポート(DerivedReport)の2つをプロジェクトに追加しています。以下の手順により、親レポートのページヘッダとページフッタのデザイン情報を、子レポートに引き継ぐことができます。

レポート実行時の継承

各レポートに共通するプロパティやメソッドを実装した基本クラスを作成し、このクラスを継承することができます。

注意:

親レポートを作成する

  1. Visual Studioのプロジェクトにセクションレポート(コード)テンプレートを追加し、レポートの名前を「BaseReport」に設定します。詳細については、「プロジェクトにレポートを追加する」を参照してください。
  2. レポートテンプレートで、Visual Studioのツールボックスから以下のコントロールをBaseReportの指定された位置に追加し、各プロパティを設定します。
    コントロール セクション Location Size その他
    Picture PageHeader 0, 0 in 3, 0.65 in Image = (<...>をクリックし、画像へのパスを参照します。)
    PictureAlignment = TopLeft
    Label PageHeader 1.16, 0.65 in 1.8, 0.25 in Text = テンプレートの継承
    Font = MS ゴシック、15pt、 style=Bold
    Label PageFooter 0, 0 in 6.5, 0.19 in Text =http://www.grapecity.com/jp
    HyperLink = http://www.grapecity.com/jp
    Font/Bold = True
    Alignment = Center
  3. デザイナ面の周囲にあるグレーの領域を右クリックし、[プロパティ]ウィンドウを開きます。
  4. MasterReportプロパティを「True」に変更します。Detailセクションがグレーに表示され、編集不可になったことがわかります。
    注意: 親レポートのデザインが完了するまでは、MasterReportプロパティを「True」に設定しないでください。このプロパティをTrueに設定すると、レポートのデザイナファイルが変更されます。

    親レポートでは、ページヘッダおよびページフッタセクションを編集することができます。一方、親レポートを継承する子レポートを作成する場合は、Detailセクションのみで編集が可能です。

親レポートのレイアウトを継承する

次の手順は、Visual Studioのプロジェクトにもう1つのセクションレポート(コード)テンプレートを追加したことを前提にしています。このレポートは、Detailセクションのレイアウトを作成するコンテンツレポートのように動作します。

  1. Visual Studioプロジェクトに、セクションレポート(コード)を追加し、レポートの名前を「DerivedReport」に設定します。
  2. ソリューションエクスプローラでDerivedReportを右クリックし、[コードの表示]を選択します。
    注意: このとき、Visual Basicを使用している場合は、DerivedReport.vbファイルの[コードの表示]ではなく、ソリューションエクスプローラの[すべてのファイルを表示]ボタンをクリックして表示されるDerivedReport.Designer.vb(Partialクラスのファイル)の[コードの表示]を選択してください。
  3. コードウィンドウで、継承元としてデフォルト設定されているGrapeCity.ActiveReports.SectionReportを親レポートに変更します。

    Visual Basic

    Visual Basicコード(コード内のYourProjectNameを変更してください。)
    コードのコピー
    Partial Public Class DerivedReport Inherits YourProjectName.BaseReport

    C#

    C#コード(コード内のYourProjectNameを変更してください。)
    コードのコピー
    public partial class DerivedReport :YourProjectName.BaseReport
  4. レポートを閉じて、[ビルド]メニューから[ソリューションのリビルド]を選択します。レポートを再度開くと、Detailセクションは自由に編集可能ですが、親レポートから継承されているPageHeaderとPageFooterの各セクションを、ここで編集することはできません。
    注意: 親レポートを継承すると、子レポート内の既存のレイアウトが失われます。GrapeCity.ActiveReports.SectionReportに戻しても、レポート内の元のレイアウトを取得できませんので、注意してください。


    メモ: 親レポートの変更を子レポートに反映するためには、プロジェクトをリビルドする必要があります。