SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

5分でわかるActiveReports帳票

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

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

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

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

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

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

 なお、開発PCのOSが64ビット(x64)OSの場合、標準のインストール先は「C:\Program Files (x86)」になります。ご注意ください。また、プロジェクトの「ターゲットCPU」をx86に変更してください(デフォルトのAnyCPUのままだとエラーが発生します)。

データソースアイコン
データソースアイコン

 次に、レポート出力するデータを取得するための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ボタンを押してレポートデータソース設定を終わります。

コラム セクションレポートで使用できるデータソース

 ActiveReports for .NETでは多くの種類のデータソースを使用することができます。

 上記の手順で使用されるデータソースは、ActiveReports固有のデータソースです。これはOle DBを使用しており、Accessファイルに接続するためのJetデータプロバイダを呼び出しています。

 固有のデータソースには他に、SQL Serverへ接続するものや、XMLからデータを取得するものがあります。

 固有のデータソースを使うとデザイン時にデータソース設定が完了するので便利ですが、コードで設定することで、.NET Framework標準の以下のオブジェクトをデータソースとして使うことが可能です。

  • DataSet
  • DataTable
  • DataView
  • DataRowCollection
  • IListインターフェースを実装したクラス

 データソースアイコンから直接設定できないデータベースでもDataTableやDataReaderの形で取得すれば、コード上でレポートのデータソースに設定することができます。この他に、特にデータソースを定義せずにコードでレポート上に出力する値を直接制御することも可能です。

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

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

 TextBoxを選択した状態で、プロパティウィンドウのDataFieldプロパティを選択し、コンボボックスを展開するとデータソースに含まれるフィールド(データの列名)が現れます。ここから選択することで、そのフィールドのデータがTextBoxに表示されることになります。

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

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

「プレビュー」タブからプレビューが見られる
「プレビュー」タブからプレビューが見られる

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

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

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

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

帳票の生成処理

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

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

帳票生成コード(C#)
private void button1_Click(object sender, EventArgs e)
{
    using (ProductList report = new ProductList())
    {
        report.Run();
        this.viewer1.Document = report.Document;
    }
}
帳票生成コード(Visual Basic .NET)
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

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

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

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
5分でわかるActiveReports帳票連載記事一覧

もっと読む

この記事の著者

グレープシティ株式会社 ActiveReportsチーム(グレープシティカブシキガイシャ アクティブレポートチーム)

 宮城県仙台市に本社を構えるグレープシティでは、日本の業務に適したシステムをより早く開発するためのソフトウェアを提供しています。エンドユーザーの利用しやすさ、幅広いユーザー環境への対応、そして何よりプログラマの作業を軽減することを一番に目指しています。 ActiveReportsは、帳票開発に必要なあらゆる機能を備えた当社を代表するコンポーネントの1つ。1998年の発売以来、日本だけでなく全世界で多数の帳票開発者に使用されています。製品開発は同チームが中心になり、「日本仕様」の厳しい要望を実現することを目指しています。...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7374 2015/07/23 16:16

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング