PowerTools ActiveReports for .NET 9.0J > ActiveReportsユーザーガイド > 基本操作 > セクションレポートの基本操作 > RPXファイルの保存とロード |
ActiveReportsのレポートレイアウトは、C#またはVB.NETのクラスファイル(VB/
また逆に、RPXファイルとして保存されたレポートレイアウトは、セクションレポートのレポートデザイナ(RPX/VB/
注意: RPXファイルを既存のレポートにロードすると、そのレポートのデザイン情報がRPXファイルの情報で上書きされます。このため、RPXファイルをロードする場合は、プロジェクトに新しい空のレポート(RPX/VB/ |
設計時にレポートをRPXファイルとして保存する
メモ: データセットを含むレイアウトをRPXファイルに保存するとき、データアダプタとデータ接続はコンポーネントトレイ内に保存されますが、データセットそのものは失われます。保存済みのレイアウトを別のレポートにロードする場合、古いデータセットを再接続する簡単な方法がないため、データセットをもう一度生成する必要があります。 |
設計時にRPXファイルをレポートデザイナ(RPX/VB/
実行時にレポートをRPXファイルとして保存する
SaveLayoutメソッドを使用し、実行時にレポートレイアウトを保存できます。
メモ: レポートレイアウトを保存する場合、スクリプトコードのみファイルに保存されます。レポートの.csまたは.vbファイルのコードはRPXファイルには保存されません。 |
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ファイルをビューワにロードする
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(); |