[VC#]CrystalReports基礎

はじめに

CrystalReportsとは、 Visual Studio標準のレポート作成ツールであり、印刷ドキュメントのレイアウトを作成する際にデザイナで視覚的に作成できたり、データベースから読み込んだ内容を形式に合わせて印刷する事ができるため、帳票・印刷等の処理で利用される事の多いツールです。

この項目では、Visual C#のプロジェクトにCrystalReportsを追加し、印刷ドキュメントを作成する利用法をまとめております。

(以下は、CrystalReports for Visual Studioが用意されている事を前提としております)

プロジェクトへのCrystalReportsオブジェクトの追加

以下に、VisualC#のプロジェクトにCrystalReportsオブジェクトを追加する手順を記述します。

  • Visual Studioのソリューションエクスプローラ上で、追加するプロジェクトを選択し、メニューより[プロジェクト]-[新しい項目の追加]を選択します。
  • 項目の追加ダイアログより、カテゴリの[Reporting]を選択し、テンプレートから[Crystalレポート]を選択、また、ファイル名を入力して追加します。
  • CrystalReportsギャラリダイアログより、ドキュメントの種類を選択します。
    [レポートウィザードを使用]と[空のレポート]、[既存のレポート]が選択できます。
  • この時点でプロジェクトにはCrystalReportsオブジェクトが追加されます。
    (上記において[空のレポート]を選択した場合は、CrystalReportsDesignerが表示され、レイアウトの設定を行います。
    [レポートウィザードを使用]を選択した場合は、標準レポート作成ウィザードが表示され、データソースを指定等を行い、その後CrystalReportsDesignerよりレイアウトの編集等が行えます。)

上記によって追加したCrystalReportsオブジェクトは、VisualC#のCrystalReportsViewerコントロールより印刷が可能です。

CrystalReportsオブジェクトのレイアウトの設定

CrystalReportsオブジェクトはCrystalReportsDesignerより編集が可能です。

CrystalReportsDesignerは、以下のようなセクション毎に区切られており、各セクションにテキストやイメージなどを配置してレイアウトを設定します。

  • レポートタイトル等、レポートの最初に1度だけ表示されるレポートヘッダー
  • フィールド名等、各ページの最初に表示されるページヘッダー
  • レポートのデータやデータベースの内容部分である詳細
  • ページ番号等、各ページの最後に表示されるページフッター
  • 奥付等、レポートの最後に1度だけ表示されるレポートフッター

上記セクションに、以下の項目を追加する手順を記述します。

テキストの追加

  • CrystalReportsDesigner上で右クリックを行い、[追加]-[テキストオブジェクト]を選択します。
  • 追加する箇所でクリックすると、空のテキストオブジェクトが配置されます。このテキストオブジェクトに文字列を入力します。
  • このテキストオブジェクトのフォント等の変更の際は、オブジェクトのプロパティより変更するか、もしくはオブジェクトの右クリックし、[オブジェクトの書式設定]を選択して書式エディタより変更を行います。

テキストの追加

  • CrystalReportsDesigner上で右クリックを行い、[挿入]-[テキストオブジェクト]を選択します。
  • 追加する箇所でクリックすると、空のテキストオブジェクトが配置されます。このテキストオブジェクトに文字列を入力します。
  • このテキストオブジェクトのフォント等の変更の際は、オブジェクトのプロパティより変更するか、もしくはオブジェクトの右クリックし、[オブジェクトの書式設定]を選択して書式エディタより変更を行います。

イメージの追加

  • CrystalReportsDesigner上で右クリックを行い、[挿入]-[ピクチャ]を選択します。
  • ファイル選択ダイアログが表示され、イメージを選択します。
  • 追加する箇所でクリックすると、選択したイメージが配置されます。
  • このイメージのリサイズ・トリミングの際は、オブジェクトのプロパティより変更するか、もしくはオブジェクトの右クリックし、[オブジェクトの書式設定]を選択して書式エディタより変更を行います。

印刷日の追加

  • CrystalReportsDesigner上で右クリックを行い、[挿入]-[特殊フィールド]-[出力日付]を選択します。
  • 追加する箇所でクリックし、出力日付を配置します。この出力日付には印刷時点でのシステム日付が出力されます
  • この日付のフォントや形式を変更する際は、オブジェクトのプロパティより変更するか、もしくはオブジェクトの右クリックし、[オブジェクトの書式設定]を選択して書式エディタより変更を行います。
    (例:表示形式をyyyy/MM/ddではなく年月日指定する場合は、DataFirstSeparator及びDataSecondSeparator、DataSuffixSeparatorのプロパティをそれぞれ[年][月][日]と指定する)

ページ番号の追加

  • CrystalReportsDesigner上で右クリックを行い、[挿入]-[特殊フィールド]-[ページ番号]を選択します。
  • 追加する箇所でクリックし、ページ番号を配置します。(主に配置するのはページフッターセクションとなります。)
  • このページ番号のフォント等を変更する際は、オブジェクトのプロパティより変更するか、もしくはオブジェクトの右クリックし、[オブジェクトの書式設定]を選択して書式エディタより変更を行います。

データベースとの連携

CrystalReportsオブジェクトにデータベースを連結する事で、テーブルのフィールドをレイアウト内に配置する事ができ、また、テーブルのデータを出力する事が可能となります。

連結するデータベースは、ホスト等から参照する場合と、プロジェクト内のデータソースから参照する場合とあります。

データベース連結

データベースをCrystalReportsオブジェクトに連結させる手順を以下に記述します。

  • CrystalReportsDesigner上で右クリックを行い、[データベース]-[データベースエキスパート]を選択します。
  • データベースエキスパートダイアログにて接続するデータベースの参照を選択します。
    基本的には[接続の新規作成]の[OLE DB(ADO)]または[Access/Excel(DAO)](Accessを使用する場合)を選択します。
    プロジェクト内に既にデータソースが接続されている場合は、[プロジェクトデータ]-[ADO.NETデータセット]を選択する事で、テーブルの選択まで省略が可能です。
  • OLE DB(ADO)ダイアログでプロバイダを選択し、データベース接続情報を入力してデータベースの接続を行います。
    その後、データベースエキスパートダイアログに接続したデータベースが表示されるので、そのデータベースを選択します。
  • データベースより利用するテーブルを選択し、[>]を押す事で利用するテーブル及びフィールドが右側に表示されます。この時、複数のテーブルを選択が可能です。
    (複数テーブルを選択した場合、[リンク]でリンク状態を確認します。)
  • 上記の後、フィールドエクスプローラーのデータベースフィールドに選択したテーブルが追加され、このフィールドよりCrystalReportsオブジェクトへ配置が可能となります。

以下は、テーブルのデータをレイアウトに追加する手順を記述します。

テーブルデータの出力

  • CrystalReportsのフィールドエクスプローラのデータベースフィールドより出力するテーブルを選択し、出力するフィールドCrystalReportsDesigner上にドラッグ&ドロップを行います。
  • このフィールドのフォント等を変更する際は、オブジェクトのプロパティより変更するか、もしくはオブジェクトの右クリックし、[オブジェクトの書式設定]を選択して書式エディタより変更を行います。

テーブルデータの集計値の出力

  • CrystalReportsDesigner上で右クリックを行い、[挿入]-[集計]を選択します。
  • 集計の挿入ダイアログより、集計するテーブルのフィールドと集計方法を選択し、集計の保存場所を選択します。
    (複数のフィールドを利用した集計値を出力したい場合、フィールドエクスプローラの式フィールドの右クリックより[新規]を選択し、式フィールドを作成してそれを選択します。)
  • 上記により集計値のフィールドオブジェクトが表示され、印刷時に集計方法で選択した集計値が表示されます。
  • この集計値のフォント等を変更する際は、オブジェクトのプロパティより変更するか、もしくはオブジェクトの右クリックし、[オブジェクトの書式設定]を選択して書式エディタより変更を行います。

CrystalReportsの印刷

以下は、Visual C#上からCrystalReportsのビューアより印刷プレビューを表示する手順について記述します。この印刷プレビューよりレポートの印刷を行うことで印刷が可能となります。

  • VisualC#のプロジェクトより、ツールボックスの[レポート]-[CrystalReportsviewer]を選択し、VisualC#のデザイナ上にドラッグ&ドロップでコントロールを配置します。
  • このコントロールのReportSourceに、CrystalReportsオブジェクトを指定します。指定にはいくつかありますが、ソースから指定する場合は以下のようになります。
  • //CrystalReportsオブジェクトのインスタンスを生成する
    CrystalReports1 TestReport = new CrystalReports1 ();
    //ビューアに指定したインスタンスを指定する
    this.crystalreportViewer1.ReportSource = TestReport;
    
  • これらをイベント等で呼び出す事により、印刷プレビューが表示され、そこから印刷が可能となります。
カテゴリー: C# パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>