PowerTools ActiveReports for .NET 9.0J > ActiveReportsユーザーガイド > レポートのアップグレード > 旧バージョンからの移行 > 互換性に関する注意事項 |
旧バージョンと9.0Jの互換性に関する注意事項について説明します。移行後、以下に記載の問題が発生する可能性があります。
6.0J以降では、レポートクラスからShowメソッドが削除されたため、以前のバージョンで下記のようなコードを使用し、レポートをプレビューしている場合は、Viewerコンポーネントを使用したプレビュー方法に変更する必要があります。
Visual Basic(移行前) |
コードのコピー
|
---|---|
Private Sub Form1_Load(...) Handles MyBase.Load Dim rpt As New SampleReport rpt.Show() End Sub |
C#(移行前) |
コードのコピー
|
---|---|
private void Form1_Load(object sender, System.EventArgs e) { SampleReport rpt = new SampleReport(); rpt.Show(); } |
以下のコードでは、Form1にViewerコントロールが配置されているものとします。ViewerのDocumentプロパティにレポートのDocumentプロパティをセットし、レポートを実行してViewerを表示する事で、Showメソッドと同一の結果を得られます。
Visual Basic(移行後) |
コードのコピー
|
---|---|
Private Sub Form1_Load(...) Handles MyBase.Load Dim rpt As New SampleReport Me.Viewer1.Document = rpt.Document rpt.Run() End Sub |
C#(移行後) |
コードのコピー
|
---|---|
private void Form1_Load(object sender, System.EventArgs e) { SampleReport rpt = new SampleReport(); this.viewer1.Document = rpt.Document; rpt.Run(); } |
ActiveReportクラスからShowメソッドが削除された事により、6.0J以降では、本体アセンブリ(ActiveReports6.dllなど)からビューワアセンブリ(Viewer6.dllなど)への依存関係が無くなりました。これまでは、プレビューを必要としないアプリケーションであっても、本体アセンブリとビューワアセンブリの両方を実行環境へ配布する必要がありましたが、6.0J以降では、ビューワアセンブリを配布する必要が無くなりました。
7.0JではDocument.Printメソッドの内部実装が変更されました。6.0JまではDocumentクラスにPrintメソッドが存在していましたが、7.0JではPrintメソッドは拡張メソッドとしてGrapeCity.ActiveReports名前空間(GrapeCity.ActiveReports.Viewer.Win.v9.dll)のPrintExtensionクラス内に実装されています。このため、7.0J以降では、Printメソッドを使用するには名前空間をインポートする必要があります。詳細は、ActiveReportsでのPrintメソッドを参照してください。
7.0JではツールバーがToolStripクラスを使用したものに刷新されました。 またViewerの機能が追加されたためツールバーの各ボタンの表示順序も変更されました。詳細は、Windowsフォーム用ビューワのカスタマイズを参照ください。
ツールバーのボタン非表示を設定していた場合、次のように変更します。
Visual Basic(移行前) |
コードのコピー
|
---|---|
‘ActiveReports for .NET 6.0Jのコード Me.Viewer1.Toolbar.Tools(23).Visible = False '[注釈]ボタンの非表示 Me.Viewer1.Toolbar.Tools(4).Visible = False ‘コピーボタンの非表示 |
Visual Basic(移行後) |
コードのコピー
|
---|---|
‘Viewer1.Toolbar.ToolStrip.Items.RemoveAt(37) ‘[注釈]ボタンは7.0Jよりデフォルト非表示のため記載不要 Viewer1.Toolbar.ToolStrip.Items.RemoveAt(5) ‘コピーボタンの非表示 |
ツールバーにコーディングにより追加のボタンを設定していた場合、新しいAPIを使用したコードに置き換える必要があります。
Visual Basic(移行前 6.0J) |
コードのコピー
|
---|---|
' 既存の[注釈]ボタンを削除し、[カスタム注釈の追加]ボタンを追加します。 Dim image As System.Drawing.Icon Dim btn As DataDynamics.ActiveReports.Toolbar.Button btn.ButtonStyle = DataDynamics.ActiveReports.Toolbar.ButtonStyle.TextAndIcon btn.ImageIndex = 14 ' 新しいイメージをToolbar.Imagesに追加 Private Sub Viewer1_ToolClick(ByVal sender As Object, ByVal e As DataDynamics.ActiveReports.Toolbar.ToolClickEventArgs) Handles Viewer1.ToolClick ' 注釈ボタンが押された時のイベントをここに記載します。 End Sub |
Visual Basic(移行後) |
コードのコピー
|
---|---|
' 既存の[注釈]ボタンを削除し、[カスタム注釈の追加]ボタンを追加します。 Dim image As System.Drawing.Icon Dim btn As New ToolStripButton("カスタム注釈") ‘Viewer1.Toolbar.ToolStrip.Items.RemoveAt(37) ‘[注釈]ボタンは7.0Jよりデフォルト非表示のため記載不要です 'ボタンクリック時のイベントハンドラを作成します。 Private Sub tsbAnnotation_Click(sender As Object, e As EventArgs) ‘ 注釈ボタンが押された時のイベントをここに記載します。 End Sub |
C#コードでは、以前のコードに存在するXXX.Designer.csのViewer.ToolClickイベントハンドラの追加コードは不要のため削除します。
6.0J以降では、Lineコントロールのコントロール罫線を使用できません。このため、旧バージョンでLineコントロールのコントロール罫線を設定していた場合、7.0Jに移行するとコントロール罫線は描画されません。
なお、コントロール罫線を設定できないコントロールは、以下の通りです。
ActiveReports for .NET 2.0J以降では、レポートレイアウトファイルを直接参照させるためのハイパーリンク文字列の大文字/小文字が、厳密に区別されます。大文字/小文字が誤っていた場合は、1.0Jで動作していたものが、移行した後に動作しなくなりますので注意が必要です。
プロパティウィンドウ内のプロパティが一部変更されました。コントロール上にどのレポートを表示するかを指定するプロパティとして、1.0JではReportプロパティを提供していましたが、2.0J以降からは新たにReportNameプロパティが追加されました。これに伴い、プロパティウィンドウ内のReportプロパティは削除され、代わりにReportNameプロパティが表示されるように変更されました。Reportプロパティはプロパティウィンドウから削除されましたが、WebViewerオブジェクトから削除されたわけではありませんので、これによるプログラムの移行は特に必要ありません。
ReportプロパティとReportNameプロパティは、設定する型が異なります。