GrapeCity ActiveReports for .NET 16.0J
互換性に関する注意事項
ActiveReportsユーザーガイド > レポートのアップグレード > 旧バージョンからの移行 > 互換性に関する注意事項

旧バージョンと16.0Jの互換性に関する注意事項について説明します。移行後、以下に記載の問題が発生する可能性があります。

Showメソッド

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以降では、ビューワアセンブリを配布する必要が無くなりました。

Printメソッド

7.0JではDocument.Printメソッドの内部実装が変更されました。6.0JまではDocumentクラスにPrintメソッドが存在していましたが、7.0JではPrintメソッドは拡張メソッドとしてGrapeCity.ActiveReports名前空間(GrapeCity.ActiveReports.Viewer.Win.v7.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
image = New System.Drawing.Icon(Me.GetType.Module.Assembly.GetManifestResourceStream("CustomAnnotations.NOTE16.ICO"))
Viewer1.Toolbar.Images.Images.Add(image)

Dim btn As DataDynamics.ActiveReports.Toolbar.Button
btn = New DataDynamics.ActiveReports.Toolbar.Button

btn.ButtonStyle = DataDynamics.ActiveReports.Toolbar.ButtonStyle.TextAndIcon

btn.ImageIndex = 14           ' 新しいイメージをToolbar.Imagesに追加
btn.Id = ToolIds.Annotation   ' ボタンにユニークなIDを設定
btn.Caption = "カスタム注釈"
btn.ToolTip = "確認印を捺印します"
Viewer1.Toolbar.Tools.RemoveAt(23)  ' 既存の[注釈]ボタンを消去します。
Viewer1.Toolbar.Tools.Insert(23, btn)

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
image = New System.Drawing.Icon(Me.GetType.Module.Assembly.GetManifestResourceStream("CustomAnnotations.NOTE16.ICO"))

Dim btn As New ToolStripButton("カスタム注釈")
btn.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText
btn.Image = image.ToBitmap
btn.ToolTipText = "確認印を捺印します"

‘Viewer1.Toolbar.ToolStrip.Items.RemoveAt(37) ' [注釈]ボタンは7.0Jよりデフォルト非表示のため記載不要です
Viewer1.Toolbar.ToolStrip.Items.Add(btn)
' Viewer1.Toolbar.ToolStrip.Items.Insert(37,btn) ' ボタンを指定した場所に配置したい場合

' ボタンクリック時のイベントハンドラを作成します。
AddHandler btn.Click, AddressOf tsbAnnotation_Click

Private Sub tsbAnnotation_Click(sender As Object, e As EventArgs)

' 注釈ボタンが押された時のイベントをここに記載します。

End Sub

C#コードでは、以前のコードに存在するXXX.Designer.csのViewer.ToolClickイベントハンドラの追加コードは不要のため削除します。

コントロール罫線

6.0J以降では、Lineコントロールのコントロール罫線を使用できません。このため、旧バージョンでLineコントロールのコントロール罫線を設定していた場合、移行後にはコントロール罫線は描画されません。LineコントロールのLineStyleやLineWeightなどのプロパティを設定するか、コントロール罫線を設定できる別のコントロール(例:TextBoxやLabel)に置きかえてください。

なお、コントロール罫線を設定できないコントロールは、以下のとおりです。

HTTPハンドラ(Professional のみ)

ActiveReports for .NET 2.0J以降では、レポートレイアウトファイルを直接参照させるためのハイパーリンク文字列の大文字/小文字が、厳密に区別されます。大文字/小文字が誤っていた場合は、1.0Jで動作していたものが、移行した後に動作しなくなりますので注意が必要です。

WebViewerコントロール(Professional のみ)

プロパティウィンドウ内のプロパティが一部変更されました。コントロール上にどのレポートを表示するかを指定するプロパティとして、1.0JではReportプロパティを提供していましたが、2.0J以降からは新たにReportNameプロパティが追加されました。これに伴い、プロパティウィンドウ内のReportプロパティは削除され、代わりにReportNameプロパティが表示されるように変更されました。Reportプロパティはプロパティウィンドウから削除されましたが、WebViewerオブジェクトから削除されたわけではありませんので、これによるプログラムの移行は特に必要ありません。

ReportプロパティとReportNameプロパティは、設定する型が異なります。