伝票中心のアプローチ

.NETへレポート資産をシフトする

日本の業務システムに欠かせない帳票。システムを他のテクノロジーに移植する場合でも、帳票だけは元のままという事例は数多くあります。ここでは企業に蓄積された帳票資産を.NETにシフトする場合のメリットを紹介します。

さらに、ActiveReports for.NET 6.0Jに付属する、各種移行ツールの使い方を詳しく説明します。なお、移行ツールはトライアル版でお試しいただけます。
  • .NETへレポート
    資産をシフトする
  • Access/Crystal
    Reportsを移行
  • ActiveX製品を移行
  • .NET製品
    旧バージョンを移行

はじめに

日本の業務においては、発注/納品、あるいは請求/入金といった取引の多くは帳票によるやりとりで成立しています。Webサービスなどを導入し、業務プロセスが合理化してもなお、「帳票」は日本の企業取引において重要視されているのです。
そのため、帳票に関するユーザーのこだわりは非常に強く、さまざまな要求に応えた結果、帳票部分だけを、システムとは別のツールで開発するということも多々ありました。
Microsoft Accessによるレポート生成もそのような背景のもとに開発され、多くの企業で今も使われ続けています。しかし、SOX法施行により、業務システムのセキュリティ管理や整合性が厳しく求められる中、メインの業務システムから切り離されて存在している大量のAccessレポート資産をどうするかが問題になっています。

大量のAccessレポート資産をどうするか

Microsoft Accessはデータベースソフトですが、その中に含まれる「レポート」機能は古くから定評があり、帳票部分だけにAccessを使用しているということは少なくありません。しかし、「.NETでも帳票部分だけはAccessのままでいこう」と考えている方は、ちょっと待ってください。それではせっかく .NETで構築するメリットが失われてしまいます。

.NETテクノロジーのメリットは?

.NETテクノロジーを採用するメリットをまとめると下図のようになります。

図「.NETテクノロジーのメリット」

開発面でのメリットは「開発生産性の大幅な向上」です。これは .NET Frameworkクラスライブラリを利用したオブジェクト指向プログラミングを、強力なIDEであるVisual Studioを利用することで実現します。

一方、動作/運用面でのメリットは、共通言語ランタイム(CLR)が提供する各種システムサービスを利用したマネージコードで、アプリケーションが動作することです。これまでは、開発者や運用管理者が気を配る必要のあったメモリ管理、セキュリティ管理、バージョン管理を、すべて共通言語ランタイムが引き受けてくれます。

.NETテクノロジーによるメリットを享受するには、アプリケーションのすべてをVB .NETやC#などのマネージコードと呼ばれる .NETの言語で構築しなければなりません。つまり、帳票部分だけAccessを採用すると共通言語ランタイム上での動作ができず、大きなメリットを失うのです。

Access資産を.NETで有効活用できる「ActiveReports」

では、帳票部分をどうやって .NETへ移行すればいいのか?そんな方にActiveReports for .NETをお勧めします。ActiveReports for .NETは、マネージコードで構築されたVisual Studio用の本格的な帳票ツールです。そして、AccessやCrystal Reportsで作成したレポートデザインをActiveReportsの形式へと変換する専用ツールが付属しているので、移行が簡単です。

Microsoft Access/Crystal Reportsからの移行

それでは、早速Microsoft Access、およびCrystal Reportsを移行してみましょう。
ActiveReportsの「インポートウィザード」を使用します。移行できるのはレポートのデザイン情報のみで、コードは移行できません。移行が成功すると1つのレポートにつき1個のレポートデザインファイル(*.rpx)が出力されます。レポートデザインファイルは、ActiveReportsに簡単に取り込むことができます。製品ヘルプ「インポートウィザード」に詳細な情報が記載されています。

図「ActiveReportsのレポートファイルに変換」

図「Accessでのデザイン画面」
図「ActiveReportsでのデザイン画面」

※ Microsoft Access をインポートする場合、Microsoft Access 97, 2000, 2002, 2003, 2007のいずれかがコンピュータにインストールされている必要があります。
※ Crystal Reports をインポートする場合、Visual Studioと共に、以下のバージョンのCrystal Reportsのいずれかがコンピュータにインストールされている必要があります。

・ Crystal Reports for Visual Studio 2005(10.2.3600.0)
・ Crystal Reports Basic for Visual Studio 2008(10.5.3700.0)


移行手順

(1)
Windowsの「スタートメニュー」から「インポートウィザード for VS2005」を起動します。
※Visual Studio 2008 をお使いの場合は「インポートウィザード for VS2008」になります。

図「インポートウィザードを起動」

(2)
「Microsoft Access」または「Crystal Reports」を選択すると、ウィザードが起動します。案内に従って、既存のレポートから、RPXファイルを生成します。

図「Accessのウィザード画面」

Accessのウィザード画面


図「Crystal Reportsのウィザード画面」

Crystal Reportsのウィザード画面


(3)
ActiveReports for .NETのデザイナ上で、[レポート]メニューから[レイアウト ファイルを開く]を選択し、(2)で生成したRPXファイルを読み込みます。

図「RPXファイルの読み込み」

(4)
実行結果はこのようになります

図「Accessでのプレビュー表示」

Accessでのプレビュー表示

図「変換したレポートをプレビュー」

変換したレポートをWindows
アプリケーションとしてプレビュー表示

ActiveReports 2.0J(ActiveX製品)からの移行

.NET製品のActiveReportsは、.NET Frameworkの共通言語ランタイム(CLR)と基本クラスライブラリ(BCL)をベースとして開発されているためActiveX製品(※)との間に互換性はなく、完全な移行ツールは提供しておりません。しかし、ActiveReports 2.0Jを使用してデザインしたレポートに限り、デザイン情報を .NET版に移行することができます。レポートのコード部分については、.NETアプリケーションの開発手順に従い、新規アプリケーションとして開発し直す必要があります。[Visual Basic 6 コードのアップグレード]ダイアログボックスなどによる移行はサポートされません。
※ActiveReports 1.0J/1.5J/2.0J

それでは、デザイン情報の移行手順および、.NET製品とActiveX製品との違いについて、あらかじめ知っておきたいいくつかのポイントを紹介しましょう。

移行手順

(1)
ActiveReports 2.0Jのデザイナ上で、[ファイル]メニューから[保存]を選択し、レポートをRPXファイルに保存します。

図「レポートをRPXファイルに保存」

(2)
ActiveReports for .NETのデザイナ上で、[レポート]メニューから[レイアウト ファイルを開く]を選択し、(1)で保存したRPXファイルを読み込みます。

図「RPXファイルの読み込み」

.NET製品とActiveX製品の違い

(1)
レポートクラス
主な変更点は、クラスのリファクタリングと .NET Frameworkの命名規則に合わせたオブジェクトおよびメンバの名前変更です。レポートオブジェクトモデルの変更は、最小限にとどめていますが、重要な点は以下のとおりです。

  • ActiveX製品は、Showメソッドを使用することで、レポートの実行結果をプレビューすることが可能でしたが、.NET製品では、Runメソッドとビューワコントロールを使用してレポートを表示する必要があります。
  • 各セクションに対応した次のクラスを追加しました。
    Detail、GroupHeader、GroupFooter、PageHeader、PageFooter、ReportHeader、ReportFooter。
    ActiveX製品の旧Sectionオブジェクトを利用することも可能です。
  • Stylesheetクラスの追加により、レポート内で定義されたスタイルにアクセス可能。各レポートコントロールのスタイルを変更できます。
  • Imageコントロールの名前がPictureに変更。
  • Fieldコントロールの名前がTextBoxに変更。
  • TextBoxとLabelでテキストの複数行の両端揃えオプションが使用できます。
  • データコントロールに代わり、OleDBDataSource、XmlDataSource、SqlDBDataSource、ListDataSourceの4つのデータソースクラスを追加しました。
  • Pagesコレクションを分割。ActiveX製品のPagesクラスを、PagesCollectionクラスとDocumentクラスに再構成しました。新しいDocumentクラスには、RDFファイルとストリームを保存/読み込みするためのすべてのメンバが含まれます。
  • 計測単位をTwipsからインチに変更。
  • Frameコントロールの削除。

(2)
印刷
  • PrintControllerクラスとPrintControllerWithStatusクラスが追加され、印刷モデルが .NET Frameworkに準拠しました。
  • ビューワコントロールは .NET FrameworkのPrinterクラスとPrinterSettingsクラスを使用します。
  • Document.Printメソッドの呼び出しによるレポートの生成が行われません。ドキュメントを印刷する前に、レポートを生成しておく必要があります。

(3)
ビューワ
  • ToolbarクラスとToolsクラスが刷新されました。
  • TOC(見出し一覧)コレクションからTOCツリーコントロールが独立し、TOCコレクションの名称がBookmarksCollectionに変わりました。
  • ビューワコントロールにはActiveReportsオブジェクトではなく、Documentオブジェクトがバウンドされます。

ActiveReports for .NET 1.0J/2.0J/3.0Jからの移行

旧バージョンの.NET製品(※)からの移行には、専用のプロジェクト移行ツール「ActiveReports 6.0J ファイル コンバータ」を提供していますので以前のActiveReportsプロジェクトを簡単に移行できます。
※ActiveReports for .NET 1.0J/2.0J/3.0J

移行手順

(1)
移行元のActiveReportsプロジェクトを開きます。

図「移行元のActiveReportsプロジェクトを開く」

(2)
[ツール]メニューから[ActiveReports 6.0J ファイル コンバータ]をクリックし、ActiveReports ファイル コンバータを開きます。画面にはプロジェクトに含まれるすべてのレポートファイルが一覧表示されます。

図「ActiveReports ファイル コンバータを開く」

図「ActiveReports ファイル コンバータ」

(3)
〈OK〉ボタンをクリックすると、以前のレポートファイルが、新しいレポートファイルに変換されます。同時に、ActiveReportsアセンブリの参照設定が更新されます。

(4)
ライセンス情報を移行します。 移行方法は、製品ヘルプ「ライセンス情報を移行する」をご確認ください。

(5)
移行元のActiveReportsのバージョンやアプリケーションの処理によっては、一部のコードを手動で変更する必要があります。詳細は製品ヘルプ「移行について」をご覧ください。

(6)
プロジェクトをリビルドします。