レポート作成の大まかな流れ
■ActiveReportsのインストール
ActiveReportsのインストールで注意すべき点は特にありません。
インストールの最初にシリアル番号を入力しますが、ここで空欄のままインストールを続けると、試用版としてインストールされます。実際の試用版はグレープシティのサイトのダウンロードページからダウンロードできます。試用版では、機能的な制限はありませんが、印刷時に試用版であることを示すバナーが出力されます。
Visual Studio 2008と2005の両方をインストールしている筆者の場合でも、どちらの環境にも問題なくインストールされました。またグレープシティの資料によると、以前のバージョンのActiveReportsがすでにインストールされている環境に、新しい3.0Jをインストールしても問題ないようです。
■プロジェクトの新規作成
ここではVisual Basic 2005を使って、Windowフォーム・アプリケーションのプロジェクトを新規作成します。Windowsフォーム(Form1)が1つ作成されるので、ここには、[印刷][プレビュー][PDF出力]という3つのボタンを作成します。ボタンが押されたときのイベント・ハンドラも作成しておきます。
■レポートの追加
次に、プロジェクトに対してレポート・ファイル(=ActiveReports 3.0 ファイル)を追加します。これには、ソリューション・エクスプローラのプロジェクト項目を右クリックするなどして[新しい項目の追加]ダイアログを表示し、「ActiveReports 3.0 ファイル」テンプレートを使って新規ファイルを追加します。[ファイル名]を特に設定しなければ「NewActiveReprot1.vb」というファイルがプロジェクトに追加されます。
■レポート内容をデザインする
レポート・ファイル(NewActiveReprot1.vb)がプロジェクトに追加されると、ActiveReportsデザイナが表示されます。前述したように、レポートのデザインはこのActiveReportsデザイナで行います。
ここでは、一覧表形式のレポートを作成しましょう。次の画面のようにデザインしました。
Detail領域には列ごと(ここでは日付、商品番号、商品名など)にそれぞれTextBoxコントロールを配置しています。レポートの生成処理ではDetailの部分がクエリの結果(もしくはレポートが参照するデータセット)によって得られるレコード数分繰り返し処理されます。出力ないようが1ページに収まらない場合は複数ページに分割されます。PageHeader領域にはロゴ画像、印刷日、表形式の列見出しをセットし、PageFooter領域にはページ番号を設定しています。
■データバインドの指定
このDetail領域にセットしたTextBoxにデータベースから取得したデータを反映させるわけですが、帳票印刷でデータベースに接続しないということはまず考えられません。
今回の例では、レポート・ファイルに直接データソースを記述してクエリ(SQL文)を実行してみることにします。データベースにはSQL Serverのサンプルとして提供されている「NorthWind」データベースを利用しました。
デザイナでレポート・フォームを選択すると、[プロパティ]ウィンドウの下部に[レポート データソース]というリンクが表示されます。これをクリックすると、[レポート データソース]ダイアログが表示され、ここでレポートで使用するデータソースの設定が行えます。
[レポート データソース]ダイアログでデータベースに接続するための接続文字列と、実行するクエリを指定します。上の画面の例ではNorthwindデータベースの「invoices」ビューの内容を取得して、これに含まれる列の一部を出力しています。
もちろんデータソースの指定方法はこれだけではありません。ActiveReportsにはデータセットの処理に非常に多くの実装方法があります。動的にデータセットを設定することも可能ですし、極端な例ではデータベースに接続しなくてもレポートの印刷が可能です。
次にActiveReportsデザイナに配置した一覧表コントロールにデータセットのメンバを設定します。Detail領域に配置したTextBoxコントロールのDataFieldプロパティにクエリ結果に含まれるカラム名をそれぞれ設定します。
ActiveReportsデザイナには、([デザイナ]タブや[スクリプト]タブのほかに)[プレビュー]タブがあり、今回のようにデータソースを事前に設定すると、プレビューで実際にクエリした結果がプレビューできます。
■プレビュー・ウィンドウの作成
上の画面はActiveReportsデザイナのプレビュー画面ですが、プログラム自身も印刷プレビューを表示できるように、プレビュー用のウィンドウを作成しましょう。
プロジェクトにレポート・ファイルを追加したのと同様に、ソリューション・エクスプローラから新しいWindowsフォーム(Form2)を追加します。このWindowsフォームに、前述のプレビュー・コントロール(Viewerコントロール)をツールボックスから貼り付けます。
なお、筆者の環境では、インストールの際になぜかツールボックスにActiveReportsのプレビュー・コントロールが登録されませんでしたので、手作業で登録しました。実際にこれを行うには、[参照の追加]ダイアログの[.NET]タブを選択して「DataDynamics.ActiveReports.Viewer」名前空間の「Viewer」コントロールを追加します。また、後ほど印刷内容をそのままPDFファイルに出力する処理も実装しますので、「PdfExport」というコントロールも追加します。
プレビュー・コントロール(Viewerコントロール)をフォームにドロップして、さらにウィンドウ・サイズの変更に応じてウィンドウいっぱいにコントロールが表示されるようにDockプロパティを「Fill」にしておきます。
ここから印刷処理のコーディングを行います。
Copyright© Digital Advantage Corp. All Rights Reserved.