ActiveReports for .NET 18.0J
RPXファイルの保存とロード
ActiveReportsユーザーガイド > 基本操作 > セクションレポートの基本操作 > 共通操作 > RPXファイルの保存とロード

ActiveReportsのレポートレイアウトは、C#またはVB.NETのクラスファイル(VB/CSファイル)、または、独立したレポートレイアウト情報ファイル(RPXファイル)として保存することができます。

また逆に、RPXファイルとして保存されたレポートレイアウトは、セクションレポートのレポートデザイナ(RPX/VB/CSファイル)にロードすることができます。

注意: RPXファイルを既存のレポートにロードすると、そのレポートのデザイン情報がRPXファイルの情報で上書きされます。このため、RPXファイルをロードする場合は、プロジェクトに新しい空のレポート(RPX/VB/CSファイル)を追加し、このレポートにRPXファイルをロードしてください。

デザイン時にレポートをRPXファイルとして保存する

  1. 注意: データセットを含むレイアウトをRPXファイルに保存するとき、データアダプタとデータ接続はコンポーネントトレイ内に保存されますが、データセットそのものは失われます。保存済みのレイアウトを別のレポートにロードする場合、古いデータセットを再接続する簡単な方法がないため、データセットをもう一度生成する必要があります。
    [レポート]メニューから、[レイアウトファイルの保存]を選択します。
  2. [名前を付けて保存]ダイアログで、ファイルに適切な名前を付け、保存場所を選択します。ファイルの拡張子は「*.rpx」に変更されます。
  3. [保存]ボタンをクリックし、選択したレポートレイアウトを保存します。

デザイン時にRPXファイルをレポートデザイナ(RPX/VB/CSファイル)にロードする

  1. [レポート]メニューから、[レイアウトファイルを開く]を選択します。
  2. [開く]ダイアログから、任意のRPXファイルを選択します。
  3. [開く]ボタンをクリックし、選択したレポートレイアウトをレポートデザイナ(RPX/VB/CSファイル)にロードします。

実行時にレポートをRPXファイルとして保存する

SaveLayoutメソッドを使用して、実行時にレポートレイアウトを保存することができます。

注意:

  • レポートレイアウトを実行する前に保存してください。レポートの実行後にレイアウトを保存すると、レイアウトに動的な不要なデータが保存されてしまいます。
  • レポートレイアウトを保存する場合、スクリプトコードのみがファイルに保存されます。レポートの.csまたは.vbファイルのコードはRPXファイルには保存されません。
  1. Windowsフォームで右クリックして、[コードの表示]を選択し、コードビューを表示します。
  2. 以下のコードをFormクラスに追加し、レポートをロードします。

Visual Basic

Visual Basicコード(Formクラス内に張り付けます)
コードのコピー
Dim rpt As New SectionReport1()
Dim xtw As New System.Xml.XmlTextWriter(Application.StartupPath + "\report.rpx", Nothing)
rpt.SaveLayout(xtw)
xtw.Close()

C#

C#コード(Formクラス内に張り付けます)
コードのコピー
SectionReport1 rpt = new SectionReport1();
System.Xml.XmlTextWriter xtw = new System.Xml.XmlTextWriter(Application.StartupPath + "\\report.rpx", null);
rpt.SaveLayout(xtw);
xtw.Close();

メモ:

  •  レポート内部でSaveLayoutメソッドを呼び出す場合は、ReportStartイベントを使用します。
  • SaveLayoutメソッドは、ストリームに保存するとき、UTF-16エンコーディングを使用し、ファイルに保存するときはUTF-8エンコーディングを使用します。

実行時にRPXファイルをビューワにロードする

  1. Windowsフォームで右クリックして、[コードの表示]を選択し、コードビューを表示します。
  2. 以下のコードをFormクラスに追加し、レポートをロードします。

Visual Basic

Visual Basicコード(Formクラス内に張り付けます)
コードのコピー
Dim rpt As New GrapeCity.ActiveReports.SectionReport()
' コードを実行する前に、report.rpxをプロジェクトのbin\debugフォルダに配置します。
Dim xtr As New System.Xml.XmlTextReader(Application.StartupPath + "\report.rpx")
rpt.LoadLayout(xtr)
xtr.Close()
Viewer1.Document = rpt.Document
rpt.Run()

C#

C#コード(Formクラス内に張り付けます)
コードのコピー
GrapeCity.ActiveReports.SectionReport rpt = new GrapeCity.ActiveReports.SectionReport();
// コードを実行する前に、report.rpxをプロジェクトのbin\debugフォルダに配置します。
System.Xml.XmlTextReader xtr = new System.Xml.XmlTextReader(Application.StartupPath + "\\Sample.rpx");
rpt.LoadLayout(xtr);
xtr.Close();
viewer1.Document = rpt.Document;
rpt.Run();
関連トピック