新規アプリケーションの作成 2
レポートデータソースの設定
次に、ActiveReports帳票が参照するデータソースの設定を行います。今回はサンプルデータとして、ActiveReportsに付属のデータ(Accessデータベース)を使用します。
レポートデータソースを設定するには、レポートデザイナの「detail」のところにあるデータベース型のアイコンをクリックします。すると設定ダイアログが表示されるので、[作成]ボタンを押してデータベース接続文字列を作成します。今回の接続先はAccessデータベースなので、 OLE DBプロバイダとして「Microsoft Jet 4.0 OLE DB Provider」を選択し、接続先データベースとして、ActiveReportsインストール先のDataフォルダ(標準ではC:\Program Files\ActiveReportsNET3\Data)にある「NWind.mdb」を設定します。
次に、レポート出力するデータを取得するためのSQLを記述します。今回は「商品ID」「商品名」「仕入先」「在庫数量」を取得する次のようなクエリを設定します。
SELECT Products.ProductID, Products.ProductName, Suppliers.CompanyName, Products.UnitsInStock FROM Suppliers INNER JOIN Products ON Suppliers.SupplierID = Products.SupplierID
接続文字列の設定が終わったら、OKボタンを押してレポートデータソース設定を終わります。
コントロールとデータのバインド
データソースの設定が終わったら、コントロールとデータのバインドを行います。 TextBoxコントロールのDataFieldプロパティに、データソースとして指定したSQLの列名を設定します。
DataFieldプロパティの設定がひと通り終わったら、正しく設定されているかどうか確認しましょう。レポートデザイナの[プレビュー]タブを表示すると、データが配置された印刷イメージを確認することができます。
呼び出し元アプリケーションの作成
印刷イメージができたところで、今度は帳票を呼び出すアプリケーションを作成します。
フォームに[帳票生成]ボタン(button1)、[PDF出力]ボタン(button2)、生成された帳票の内容を確認するためのViewerコントロール(viewer1)を配置します。
帳票の生成処理
コントロールの配置が終わったら[帳票生成]ボタンをダブルクリックし、実際に帳票を生成してビューアに表示するためのコードを実装します。ActiveReportsでは帳票クラスのインスタンスを作成し、Runメソッドを実行すると帳票が生成されます。
生成された帳票はDocumentプロパティから参照できるので、これをViewerコントロールのDocumentプロパティに設定します。また、Viewerコントロールの機能を使って、帳票のプレビューや拡大/縮小表示、印刷を行うことができます。
private void button1_Click(object sender, EventArgs e) { using (ProductList report = new ProductList()) { report.Run(); this.viewer1.Document = report.Document; } }
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出力]ボタンをダブルクリックして、PDF出力処理のコードを実装します。 PdfExportクラスはDataDynamics.ActiveReports.Export.Pdf名前空間に属するので、コードの先頭にusing(VBの場合はImports)ステートメントで参照先を追加してください。
このサンプルでは、ボタンを押すと「名前をつけて保存」ダイアログが表示され、指定した保存先にPDFファイルが生成されます。
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); } } }
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