帳票アプリケーションの特徴と設計手順
それでは、設計方針を確認する前に、帳票アプリケーションの特徴について簡単にまとめておきましょう。
帳票アプリケーションとは、ひとことで言うと「データソースから抽出したデータを、帳票レイアウトによって書式付けし、所定のサイズを持つ用紙に出力する」アプリケーションです。つまり、帳票アプリケーションの機能を大きく分けて動作順に並べると、以下の3つになります。
- データソースからデータを取得する
- 取得したデータを帳票レイアウトに当てはめる
- 帳票レイアウトをレンダリングして、用紙に出力する
最初の「データソースから必要なデータを取得する」部分は、RDBMSやファイルなどに含まれるデータの中から必要なものを検索して、データを帳票として出力しやすい形に整える工程です。データソース側に定義されているフィールドをそのままバインドして使うことも多いのですが、場合によっては検索条件をつけて絞り込みをかけたり、データの型や並び順を修正するなど、データ量や型、書式を加工することもあります。この工程では、「データをデータソースからどのように切り出すか」を定義します。切り出されたデータのことを、ここでは「データモデル」と呼ぶことにします。
次の「取得したデータを帳票レイアウトに当てはめる」部分は、整形されたデータモデルの各フィールドと、レポートファイルに配置されたコントロールを対応付けるための工程です。ここでは帳票レイアウトの定義として、全体のレイアウトやセクションごとの出力構造とグループ化条件、出力項目の書式設定などについて定義します。
最後の「帳票レイアウトをレンダリングして、用紙に出力する」は、実際にプログラムを動かして、データモデルの各項目と帳票レイアウトを結びつけて出力コンテンツを生成し、規定のサイズを持つ用紙に割り付けていく工程です。ActiveReportsを利用して帳票アプリケーションを開発する場合、レンダリングと出力に関してはActiveReportsのレポートエンジンが担当してくれるので、この部分の機能は特に設計・開発する必要はありません。
つまり、ActiveReportsを利用した帳票アプリケーション開発において、帳票アプリケーションの設計は「データモデルの定義」と「帳票レイアウトの定義」の2つがメインになると言えます。この他にも、ユーザーの要件によっては「データの集計結果にエラーがあれば、帳票の生成を中止する」「帳票を出力した日時をデータベースに記録する」など、さまざまな機能を追加する必要があるかもしれません。
しかし、要求されたすべての機能を帳票出力アプリケーションとして一緒に実装してしまうと、各機能を個別に動作確認させることが難しくなり、またメンテナンス性も著しく低下します。
帳票出力そのものと関係の薄い周辺機能は、帳票アプリケーション本体とはいったん切り離して設計し、それぞれが完成してから連携する、という手順を取った方が得策です。