ActiveReportsで開発したアプリを最新「14.0J」へ移行する手順を解説

.NET帳票コンポーネント「ActiveReports for .NET(アクティブレポート)」では、旧バージョンから最新バージョンに移行するためのツールを提供しています。
今回の記事では、旧バージョンで作成したWindows FormsアプリのActiveReportsを最新バージョン「14.0J」に移行する方法をご紹介します。

14.0Jの新機能

14.0Jでは、ASP.NET Core対応やJSビューワなど、Web帳票開発機能が強化されていますが、GS1QRコードやIVS文字への対応、新コントロール「InputField」など、Windowsフォームアプリでもご利用いただける様々な機能強化を行っております。そのほかにも帳票開発を支援する機能が多数追加されていますので、詳細は製品サイトをご覧ください

14.0Jへの移行方法

移行対象のアプリ

今回は2009年に発売された「6.0J」に含まれている請求書サンプル(…/Samples/CS/Layout/Seikyu1)を「14.0J」に移行してみたいと思います。

6.0Jの請求書サンプル

ファイルコンバータの実行

※ 移行作業前にプロジェクト全体のバックアップを取ることをおすすめします

まずは移行元となるプロジェクトをVisual Studioで開きます。14.0Jは、「Visual Studio 2013/2015/2017/2019」でご利用いただけます。また、14.0Jが対応している .NET Frameworkのバージョンは「4.6.2」以降です。

通常はファイルコンバータを実行することで自動的にターゲットフレームワークも「4.6.2」に変更されますが、「4.6.2」のSDKがインストールされていないなど、環境によっては移行に失敗する場合もあります。その場合はコンバータ実行前に、あらかじめプロジェクトのターゲットフレームワークを「4.6.2」以降の利用可能なバージョンに変更しておきます。

ターゲットフレームワークの変更

上部の[ツール]メニューから[ActiveReports 14.0J ファイルコンバータ]を実行します。

ファイルコンバータの実行

移行対象のファイルが表示されるので、[OK]ボタンをクリックして変換を実行します。

変換の実行

14.0JのActiveReportsのライブラリはNuGetパッケージとして提供されるので、旧バージョンのようなGACからのインストールと比較して少し時間がかかりますが、しばらく待つと以下のように変換が完了します。

変換完了

ライセンス情報の移行

基本的には以上で移行の手順は完了です。あとはプロジェクト全体をリビルドします。
その際、移行元のバージョンによっては以下のように「“LC.exe” はコード -1 を伴って終了しました」のエラーが発生する場合があります。

ビルドエラーが発生

上記エラーの対処方法はこちらのナレッジ文書に詳しく解説されています。

ほとんどの場合は、「1.」にある、「licenses.licx」の内容を修正することで解消されます。今回移行するサンプルで使用しているレポートの種類や機能にあわせてライセンスを記述します。

GrapeCity.ActiveReports.SectionReport, GrapeCity.ActiveReports
GrapeCity.ActiveReports.Viewer.Win.Viewer, GrapeCity.ActiveReports.Viewer.Win

詳細は製品ヘルプの以下のトピックもご覧ください。

ヘルプの「ライセンス情報を移行する」を見る​​​​​​​
ヘルプの「アプリケーションのライセンスの組み込み」を見る​​​​​​​

ファイルコンバータを実行してもエラーが発生する場合

移行元のActiveReportsのバージョンやアプリケーションの処理によっては、ファイルコンバータを実行しても、前述のLC.exeのエラー以外のエラーが残ってしまい、ビルドが通らない場合があります。その場合は、一部のコードを手動で変更する必要があります。

特に「6.0Jから7.0J」および「12.0Jから14.0J」にかけて、アセンブリの名前空間やクラス名、ViewerコントロールやDesignerコントロール等について、大幅な変更が加えられているので注意が必要です。

詳細な手順等については、製品ヘルプの以下のトピックをご覧ください。

ヘルプの「ver14.0Jへの移行​​​​」を見る​​​

アプリケーションを実行

ビルドエラーが解消したら、実行してみます。移行前と同様にWindows Formsアプリに帳票が表示されました。

14.0Jに移行した請求書サンプル

一見正常に移行できたように見えますが、よく見ると、帳票右上の王冠マークのロゴが表示されなくなっています。

ロゴ画像が表示されない

こちらはナレッジベースサイトにて公開されている以下の問題に該当します(今回は14.0J SP2を使用していますが、お使いのバージョンによっては事象が発生しない場合があります)。

ナレッジベースの「ファイルコンバータで移行すると、実行時に画像が表示されない」を見る

回避方法等も上記ページにて公開されております。

Pictureコントロールの位置を変更してレポートを保存してください。
保存後、位置は元に戻して問題ありません。

上記の通り、レポートファイル(rptSeikyu.cs)をデザイナで開き、Pictureコントロールの位置をちょっと動かし、すぐ元の場所(以下の値)に戻して(Locationプロパティを以下の値に設定)、レポートを上書き保存します。

4.949, 0.506 in
Locationプロパティを上書き保存

再度アプリケーションを実行

レポートファイルを保存したら、ビルドして再度実行します。以下の通り、今度はロゴ画像も正常に表示されました。

ロゴ画像も正常に表示

さらに詳しい移行情報をPDFで公開中!

以上が旧バージョンで作成したWindows FormsアプリのActiveReportsを最新バージョン「14.0J」に移行する方法でした。製品サイトでは移行作業の実例を詳細にまとめた移行資料を公開しています。14.0Jへの移行をご検討されている方は是非ご確認ください。