CodeZine(コードジン)

特集ページ一覧

5分でわかるActiveReports帳票-らくらく始める帳票作成(2007年度版)

ActiveReports for .NET 3.0Jで作るサンプル帳票

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2007/08/03 14:00

 Visual Studio用コンポーネントActiveReports for .NETは優れたレポートデザイナ、レポートビューアを備えている帳票作成コンポーネントです。本連載では最新版の「ActiveReports for .NET 3.0J」を使って帳票アプリケーションの作成方法を紹介します。

編集部注

 本稿の内容を増補改訂したアップデート版が提供されています。詳しくは連載の目次「5分でわかるActiveReports帳票」をご参照ください。

はじめに

 ActiveReports for .NET(以下ActiveReports)はVisual Studioと統合された使いやすいレポートデザイナや高機能なレポートビューア、多彩な出力形態をサポートする帳票作成コンポーネントです。今回はActiveReportsの最新版3.0Jを利用した帳票アプリケーションの開発の流れを、サンプルを交えながら紹介します。

ActiveReportsのレポートデザイナ画面
ActiveReportsのレポートデザイナ画面

対象読者

  • Visual Basic 2005またはVisual C# 2005を使ってプログラムを作ったことのある方。
  • 帳票作成ツールに興味のある方。

必要な環境

(注:Express EditionではActiveReportsをインストールできません)
  • Visual Studio 2005、Visual Studio .NET 2003でプログラムが作れる環境。

 本記事のサンプルコードはC# 2.0/Visual Basic 2005で記述しています。

 なお、今回紹介するサンプルには作成した帳票をPDF形式で出力する機能があります。開発環境のほか、出力したファイルを閲覧するためにAdobe Readerが必要になります。

ActiveReports for .NET 3.0Jのインストール

 今回はじめてActiveReportsを使用する方は、まずクライアントPCにActiveReportsをインストールする必要があります。有償の製品ですが、プロダクトキーを入力せずにインストールすることで、トライアル版として使用できます。制限事項などの詳細については、インストーラに同梱されているリリースノートを参照ください。

 インストーラは、グレープシティのWebページからダウンロードできますので、ここからダウンロードしてインストールしてください。製品ページ左側の[ダウンロード]-[トライアル版]をクリックし、ダウンロード方法([FTP]または[HTML])を選択すれば入手できます。ファイルはLZH形式で圧縮されています。

 ActiveReportsにはStandardとProfessionalの2つのEditonがありますが、今回はProfessional Editonをインストールします。各Editonの違いは、製品ヘルプを参照ください。

コントロールの追加

 インストール後はすぐに帳票アプリケーションの開発を行うことができますが、このあとのサンプルアプリケーション開発を効率よく行うため、ここではVisual StudioのツールボックスにActiveReportsのコントロールを追加する手順を紹介します。

 ツールボックスにコントロールを追加するには、メニューバーの[ツール]-[ツールボックスアイテムの選択]をクリックします。「ツールボックスアイテムの選択」ダイアログが表示されるので、追加したいコントロールにチェックを入れて[OK]ボタンを押します。

「ツールボックスアイテムの選択」ダイアログ
「ツールボックスアイテムの選択」ダイアログ

 異なるバージョンのActiveReportsがインストールされていると、複数のViewerコントロールが表示されます。異なるバージョンのActiveReportsを共存させている場合は、バージョンをインストーラやリリースノートから確認し、コントロール使用時にバージョンが混在しないように注意してください。

新規アプリケーションの作成 1

 それではさっそく、簡単な帳票アプリケーション作成について紹介します。帳票アプリケーション開発は、大きく分けて以下の4ステップで構成されます。

  1. レポートデザイナによる帳票レイアウトの作成
  2. レポートデータソースの設定
  3. データソースと帳票レイアウトの紐付け
  4. 呼び出し元アプリケーションの作成

最終的な完成イメージ

 今回作成する帳票は、「商品一覧」です。商品のコードと名称、仕入先、在庫数量が並んだ単純な帳票です。

「商品一覧」帳票
「商品一覧」帳票

 また、帳票を出力するための簡単なWindows Formsアプリケーションも作成します。このアプリケーションでは帳票の生成とPDF出力を行うことができます。

サンプルアプリケーション
サンプルアプリケーション

レポートデザイナによる帳票レイアウトの作成

 ActiveReportsによる帳票を作成するには、プロジェクトを右クリックして[追加(D)]-[新しい項目(W)]から「ActiveReports 3.0ファイル」を選択します。ここではファイル名を「ProductList.cs」とします。

「新しい項目の追加」ダイアログでActiveReports 3.0ファイルを選択
「新しい項目の追加」ダイアログでActiveReports 3.0ファイルを選択

 このファイルをエディタで開くと、帳票レイアウトをデザインするためのレポートデザイナが起動します。レポートデザイナに表示される帳票レイアウトは、初期状態では3つのエリアに分かれています。「pageHeader」「pageFooter」は各ページの先頭と末尾に出力する項目、「detail」は繰り返し出力される項目です。

 これら3つに加え、帳票全体の先頭と末尾に出力される「レポートヘッダ/フッタ」や、明細をグループごとにまとめた単位で出力される「グループヘッダ/フッタ」を設定することができます。ヘッダ/フッタの挿入は右クリックメニューの[挿入]から行うことができます。

レポートデザイナでページヘッダを追加する
レポートデザイナでページヘッダを追加する

 次に、レポートデザイナにコントロールを配置して帳票のレイアウトを作成していきます。ツールボックスからLabelコントロールをレポートデザイナへドロップし、タイトルの「商品一覧」や「商品コード」「商品名称」などのラベル項目を作成していきます。また、実際にデータを出力する項目として、明細行にTextBoxコントロール貼り付けていきます。ここでTextBoxのTextプロパティに設定した値は帳票生成時に実際の値で置き換わるので、適当な文字を入れておいて構いません。

レポートデザイナでコントロールを配置していく
レポートデザイナでコントロールを配置していく

新規アプリケーションの作成 2

レポートデータソースの設定

 次に、ActiveReports帳票が参照するデータソースの設定を行います。今回はサンプルデータとして、ActiveReportsに付属のデータ(Accessデータベース)を使用します。

今回使うNWind.mdbに含まれるProductテーブルとSupplierテーブル
今回使うNWind.mdbに含まれるProductテーブルとSupplierテーブル

 レポートデータソースを設定するには、レポートデザイナの「detail」のところにあるデータベース型のアイコンをクリックします。すると設定ダイアログが表示されるので、[作成]ボタンを押してデータベース接続文字列を作成します。今回の接続先はAccessデータベースなので、 OLE DBプロバイダとして「Microsoft Jet 4.0 OLE DB Provider」を選択し、接続先データベースとして、ActiveReportsインストール先のDataフォルダ(標準ではC:\Program Files\ActiveReportsNET3\Data)にある「NWind.mdb」を設定します。

 次に、レポート出力するデータを取得するためのSQLを記述します。今回は「商品ID」「商品名」「仕入先」「在庫数量」を取得する次のようなクエリを設定します。

帳票に出力する項目を取り出すSQL
SELECT Products.ProductID, Products.ProductName,
       Suppliers.CompanyName, Products.UnitsInStock
FROM   Suppliers
INNER JOIN Products ON Suppliers.SupplierID = Products.SupplierID
レポートデータソースに接続文字列とSQLを設定した状態
レポートデータソースに接続文字列とSQLを設定した状態

 接続文字列の設定が終わったら、OKボタンを押してレポートデータソース設定を終わります。

コントロールとデータのバインド

 データソースの設定が終わったら、コントロールとデータのバインドを行います。 TextBoxコントロールのDataFieldプロパティに、データソースとして指定したSQLの列名を設定します。

「商品コード」のTextBoxコントロール(textBox1)のDataFieldプロパティに、"ProductID"を設定
「商品コード」のTextBoxコントロール(textBox1)のDataFieldプロパティに、"ProductID"を設定

 DataFieldプロパティの設定がひと通り終わったら、正しく設定されているかどうか確認しましょう。レポートデザイナの[プレビュー]タブを表示すると、データが配置された印刷イメージを確認することができます。

ActiveReports 3.0Jではレポートデザイナでプレビューを見られる
ActiveReports 3.0Jではレポートデザイナでプレビューを見られる

呼び出し元アプリケーションの作成

 印刷イメージができたところで、今度は帳票を呼び出すアプリケーションを作成します。

 フォームに[帳票生成]ボタン(button1)、[PDF出力]ボタン(button2)、生成された帳票の内容を確認するためのViewerコントロール(viewer1)を配置します。

フォームにコントロールを配置
フォームにコントロールを配置

帳票の生成処理

 コントロールの配置が終わったら[帳票生成]ボタンをダブルクリックし、実際に帳票を生成してビューアに表示するためのコードを実装します。ActiveReportsでは帳票クラスのインスタンスを作成し、Runメソッドを実行すると帳票が生成されます。

 生成された帳票はDocumentプロパティから参照できるので、これをViewerコントロールのDocumentプロパティに設定します。また、Viewerコントロールの機能を使って、帳票のプレビューや拡大/縮小表示、印刷を行うことができます。

帳票生成コード(C# 2.0)
private void button1_Click(object sender, EventArgs e)
{
    using (ProductList report = new ProductList())
    {
        report.Run();
        this.viewer1.Document = report.Document;
    }
}
帳票生成コード(Visual Basic 2005)
Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) _
                             Handles Button1.Click
    Using report As ProductList = New ProductList()
        report.Run()
        Me.Viewer1.Document = report.Document
    End Using
End Sub

 ActiveReports帳票の基本クラスActiveReports3はIDisposableインターフェースを実装しています。帳票クラスの生成時はusingステートメントを利用して、アンマネージドリソースを確実に開放できるようにコードを記述しておくことをおすすめします。

ファイルへの出力

 ActiveReportsはアプリケーションで作成した帳票を直接プレビュー・印刷するだけでなく、 HTMLやPDF、Excelなどさまざまなフォーマットで出力することができます。ここでは、作成した帳票をPDFフォーマットに変換して出力する方法を紹介します。

 帳票をPDFファイルに変換して出力するには、PDF用のエクスポートフィルタが必要です。参照設定から「Data Dynamics ActiveReports PDF Export Filter」を選択し、プロジェクトに追加してください。

PDF Export Filterを参照設定に追加する
PDF Export Filterを参照設定に追加する

 次に、[PDF出力]ボタンをダブルクリックして、PDF出力処理のコードを実装します。 PdfExportクラスはDataDynamics.ActiveReports.Export.Pdf名前空間に属するので、コードの先頭にusing(VBの場合はImports)ステートメントで参照先を追加してください。

 このサンプルでは、ボタンを押すと「名前をつけて保存」ダイアログが表示され、指定した保存先にPDFファイルが生成されます。

帳票生成コード(C# 2.0)
private void button2_Click(object sender, EventArgs e)
{
    using (SaveFileDialog dialog = new SaveFileDialog())
    using (ProductList report = new ProductList())
    using (PdfExport pdfExport = new PdfExport())
    {
        dialog.Filter = "PDFファイル(*.pdf)|*.pdf";
        dialog.FileName = "StockListReport.pdf";
        if (dialog.ShowDialog() == DialogResult.OK)
        {
            report.Run();
            pdfExport.Export(report.Document, dialog.FileName);
        }
    }
}
帳票生成コード(Visual Basic 2005)
Private Sub Button2_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) _
                            Handles Button2.Click
    Using dialog As SaveFileDialog = New SaveFileDialog(), _
          report As ProductList = New ProductList(), _
          pdfExport As PdfExport = New PdfExport()
        dialog.Filter = "PDFファイル(*.pdf)|*.pdf"
        dialog.FileName = "StockListReport.pdf"
        If dialog.ShowDialog() = Windows.Forms.DialogResult.OK Then
            report.Run()
            pdfExport.Export(report.Document, dialog.FileName)
        End If
    End Using
End Sub

旧バージョンで作成したアプリケーションの移行

 ここからは旧バージョン(ActiveReports for .NET 1.0JおよびActiveReports for .NET 2.0J)から、ActiveReports 3.0Jへの移行方法を説明します。

 従来のバージョン同士(1.0Jと2.0J)をVisual Studio .NET 2003上で共存させるには、スイッチャツールを使用してデザイナを切り替える必要がありましたが、従来バージョンと最新バージョンの組み合わせ(1.0Jと3.0J、または2.0Jと3.0J)の場合は、Visual Studio上で共存が可能です。ただし、同一プロジェクト内で異なるバージョンのActiveReportsを混在させることはできません。

 ここでは、旧バージョンで作成したアプリケーションを3.0Jにバージョンアップする方法を紹介します。

単一ファイルの変換

 ActiveReports 3.0Jでは、これまでのバージョンに存在していたレイアウトファイル(rpxファイル)は存在せず、コンポーネントの定義などは「(ファイル名).Designer.cs」で行うようになりました。

 ActiveReports 3.0Jで作成した帳票ファイルを従来のrpxファイルに変換するには、メニューバーの[レポート]-[レイアウトファイルの保存]を選択します。また、ここで[レイアウトファイルを開く]を選択して従来のrpxファイルを読み込むことも可能です。

「レイアウトファイルの保存」を実行するとrpxファイルが生成される
「レイアウトファイルの保存」を実行するとrpxファイルが生成される

プロジェクトの移行

 旧バージョンのActiveReportsからプロジェクトを移行する際は、ファイルコンバーターで置換を行う必要があります。メニューバーの[ツール]-[ActiveReportsファイルコンバータ]で実行します。

ActiveReportsファイルコンバータ
ActiveReportsファイルコンバータ

 変換キー押下でソリューション配下のrpxファイルが全置換され、参照設定も変更されます。

変換前(バージョン2.0J)のプロジェクト。RPXファイルが含まれている
変換前(バージョン2.0J)のプロジェクト。RPXファイルが含まれている
変換後(バージョン3.0J)のプロジェクト。ファイルが変換されている
変換後(バージョン3.0J)のプロジェクト。ファイルが変換されている

まとめ

 ActiveReportsを利用した簡単な帳票アプリケーション開発のサンプルを紹介しました。 Visual Studioと統合されたActiveReportsのレポートデザイナは軽快で使いやすく、効率の良い帳票アプリケーション開発が可能です。

 今回作成した帳票はデータベースから取得したデータを単純に一覧表示するというものでしたが、次回は実際の帳票開発でよく使われるデータのグルーピング・集計や改ページ制御など、より実践的なテクニックを紹介していきます。

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 宮本奈紗(ミヤモトナサ)

    株式会社システムインテグレータ ERPソリューション部所属。 ERPシステムの設計・開発に従事。業務でActiveReportsを使用。

  • 渡辺俊史(ワタナベトシフミ)

    株式会社システムインテグレータ パッケージ開発部所属。ECサイト構築パッケージの設計・開発に従事。VSUG(Visual Studio User Group) データベース・データアクセスフォーラムリーダー。 blog:t.watanabe weblog

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5