ActiveReports 7.0J にアップグレードしてみた
ActiveReports 7.0J が発売されたので、プロジェクトの帳票を 3.0J からアップデートしてみました。
インストールが完了すると、Visual Studio の「ツール」メニューに「ActiveReports 7.0J ファイルコンバータ」が追加されます。バージョンが離れてるのでアップグレードが成功するか少し心配だったのですが杞憂でしたね。ActiveReports 7.0J ファイルコンバータがしっかりアップグレードしてくれます。
・・・と思っていたら甘かった(^^;
XMLコメント書いてた箇所にImport 宣言むりやり捻じ込んだり・・・こんな感じ
Option Explicit On Option Strict On ''' <summary> Imports GrapeCity.ActiveReports.Document.Section Imports GrapeCity.ActiveReports.Document ''' 請求履歴一覧 ''' </summary> ''' <remarks>顧客(請求先)に対して、請求書を発行した履歴の一覧です。</remarks> Public NotInheritable Class BillHistoryReport ・・・・
これバグだよなぁ。
他にもデザイナ使わず自分で書いたコードは Import の名前空間が古いままだったり、デザイナ使ってないプロジェクトも参照設定が古いまま。またサブプロジェクトで ActiveReports 使っててメインプロジェクトが呼び出してるだけだと licenses.licx が旧バージョンのままだったりと、コンバータに結構落ちがあるようで、修正にかなり手間取りました。GrapeCity さんにはもう少し頑張って欲しいとこですね。
あと相互運用の場合も要注意。さすがに XAML で ActiveReports 使うケースを想定してないのか、
xmlns:vw="clr-namespace:DataDynamics.ActiveReports.Viewer;assembly=ActiveReports.Viewer3"
などと宣言してた場合、さすがにアップグレードしてくれません。自前で修正する必要があります(そりゃそうだよなぁ・・・)
参考記事 : ActiveReports を WPF で使ってみる
あとは 3.0J からだいぶ変更があったようです。クラスはもちろんメソッドやイベント・プロパティの変更もかなり多く、ヘルプ見ながらゴリゴリ修正する羽目に(泣)バージョンが4つも上がってるから少しは変更あるとは思っていたけど、予想が甘かった(^^;
救いだったのは帳票デザインがしっかり引き継がれたこと。ここ壊されるとさすがにダメージでかいですが、とりあえずは問題ないようで一安心。この辺のバグは致命的だから、たぶんテストもしっかりやってるんだろうなと思われる。
まぁ何でもそうですがサードパーティ製品を使う場合、すべてツール任せにせず、ツールで補えない箇所は自分で対処するくらいの構えでいた方がいいように思えます。あと事前調査もしっかりとね(汗