■ 概要 ■ ■ レポート作成ツールの利点
データの取得は難しく無い。例えば、コードを記述してレコードセットをループし、目的の Windows アプリケーションやWeb のアプリケーションに出力出来る。.NET Framework 環境では、更に其のデ ータをRepeater、DataList、又は、DataGrid 等のコントロールにバインドする事も可能で有る。 併し、此のデータを一定のレポート形式で表示するには、複雑な操作が必要と成る。連結、複数レベル の集計、チャート作成、条件付き書式設定、及び、ページ単位の出力等、レポート機能のプログラミン グは、難解で時間の懸かる作業で有る。 Crystal Reports を使えば、複雑なレポートを簡単に作成、及び、配布する事が出来る。 ■ Crystal Reports とは
Crystal Reports は、1993 年から Visual Studio 製品群に加えられ、現在では Visual Studio 2005 用の 標準レポート作成ツールに成って居る。Crystal Reports は、Visual Studio 2005 の全製品に同梱され、 開発環境に直接統合されて居る。
Crystal Reports for Visual Studio 2005 に依り、Windows 環境に視覚効果の高い対話型のレポートを 作成する機能が付加される。Crystal Reports for Visual Studio 2005 を使用すると、GUI ベースのプロ グラムで複雑、且つ、専門的なレポートを作成出来る。然して、作成したレポートを殆ど総てのデータ ベースソースや、結果セット(ADO.NET データセット等)等のプロキシデータに接続出来る。GUI デザイナ内のウィザードを使用して、書式設定、グループ化、チャート作成等の条件を簡単に設定する 事が出来る。
作成したレポートは、Crystal Reports for Visual Studio 2005 のビューアコントロールの 1 つを使用し て、Web アプリケーションや Windows アプリケーションの孰れかでホスト出来る。Windows クライア ント、及び、HTML 3.2、又は、4.0 クライアントでのレポートプレゼンテーションでは、高度な対話 的操作が可能で、チャートのドリルダウン、レポートのナビゲーション、文字列の検索等の機能が提供 される。
Crystal Reports for Visual Studio 2005 は、拡張 SDK を同梱して居る。此の SDK に依り、次の 4 つ のオブジェクトモデルの内の1 つを使用して、実行時にプログラムに依ってレポートと対話出来る。 ・CrystalReportViewer(最も単純なオブジェクトモデル)
・ReportDocument(拡張オブジェクトモデル)
・次のオブジェクトモデルはアップグレードに依って入手出来る。 ・ReportClientDocument(最も高度な拡張オブジェクトモデル)
・InfoObject(Crystal Reports Server や BusinessObjects Enterprise のフレームワークでレポート のスケジューリングと設定を行う為の強力なオブジェクトモデル)
※ ReportClientDocument オ ブ ジ ェ ク ト モ デル と InfoObject オ ブ ジェ ク ト モ デ ル は 、 Report Application Server(RAS)に含まれて居る。此等のソリューションには、ライセンスのアップグレ ードが必要で有る。
C
作成したレポートは、次の様な多くの方法でVisual Studio 2005 プロジェクトに関連付ける事が出来る。 ・レポートを直接プロジェクトに埋め込む。
・ファイルディレクトリから外部的にレポートにアクセスする。
・リモートサーバーからレポートWeb サービスと仕てレポートにアクセスする。 ・Crystal サービスと仕てレポートに接続する。
・Crystal Reports サーバーへのアップグレードに依り RAS サーバー経由でレポートにアクセスする。 ・BusinessObjects Enterprise へのアップグレードに依り、BusinessObjects Enterprise のフレームワ
ークに含まれるPage Server や RAS サーバー経由でレポートにアクセスする。
・Crystal Enterprise やアンマネージド RAS 等のレガシーエンタープライズソリューション経由でレ ポートにアクセスする。
■ Crystal Reports for Visual Studio に付いて
Crystal Reports for Visual Studio は、殆どのバージョンの Microsoft Visual Studio をデフォルトの状 態でインストールした場合に含まれるCrystal Reports のカスタムバージョンで有る。
Crystal Reports Developer エディションにアップグレードすると、Visual Studio 内の追加の機能や更 新されたレポートコンポーネントを利用出来る様に成る。
Crystal Reports for Visual Studio .NET 2002 や 2003 及び Crystal Reports for Visual Studio 2005 に は、Crystal Reports Developer の多くの機能が含まれて居る。其れには、Crystal Reports SDK を使 用したレポートの作成、作成したレポートのCrystalReportViewer コントロールへの接続、プログラム に依る此等のレポートとの対話等の機能が含まれる。
■ Crystal Reports for Visual Studio の機能
Crystal Reports for Visual Studio 2005 は、次の様な強力な機能を備えて居る。Crystal Reports for Visual Studio 2005 の新しい機能の一覧に付いては、「Crystal Reports for Visual Studio 2005 の新機 能」を参照され度い。
・一般的な標準ファイル形式に依り、データの取得条件、グループ化、集計、パラメータ、ドリルダウ ン、及び、サブレポートのリンク情報を含む、高性能のレポートを作成出来る。
・ウィザードとエキスパートが利用可能な埋め込みCrystal Reports Designer に依り、複雑なレポート ファイルを簡単に作成出来る。
・データや.NET データセットとの接続では、データベースエキスパートを使用して、各種のデータベ ースプロトコルやADO.NET データセット形式のプロキシデータと簡単に対話出来る。
・Crystal Reports 10 や Crystal Reports for Visual Studio 2005 では、DataSet の処理速度が大幅に向 上した。
・レポートビューアに依り、Web と Windows アプリケーションの孰れの形式でも Crystal レポートを 表示出来る。
・Crystal Reports SDK は、プログラムに依ってレポートとの対話や其の変更を行う事が出来る。複雑 さや機能のレベルに応じて、性能の異なる4 つのオブジェクトモデルの 1 つを使用する。
・エクスポート機能に依り、CrystalReportViewer コントロールから Word、Excel、PDF、HTML、 及び、Crystal Reports の形式でデータをエクスポートする。
・CrystalReportViewer コントロールの出力機能に依り、Web や Windows アプリケーションからペー ジベースでレポートを出力出来る。
・CrystalReportViewer コントロールからパラメータやデータベースログオンの入力を要求する事に依 り、パラメータやデータベース情報が不足して居るレポートを簡単に修正、及び、表示出来る。
・ マ ル チ リ ン ガ ル ク ラ イ ア ン ト サ ポ ー ト に 依 り 、 他 の 言 語 が ツ ー ル ヒ ン ト に 表 示 さ れ る 様 に CrystalReportViewer コントロールを設定出来る。此れは、クライアントブラウザ、ASPX ページ、 又は、マシンの環境設定で決定する。
・ASP.NET Web サービスプロジェクトのレポート Web サービスに依りプロジェクトの作成や Crystal Report の追加、及び、Web サービスと仕てのレポートの公開を行う事が出来る。
・Crystal サービスを使用すると、Web サービス経由でプログラムに依るレポートへのアクセスが可能 に成る。
・マージモジュールのデプロイメントに依り、正しいCrystal Reports のコンポーネントとアセンブリ が、Crystal Reports for Visual Studio 2005 で作成された Web アプリケーションや Windows アプリ ケーションに確実に追加される。
・Crystal Reports for Visual Studio 2005 で利用出来る最適化機能や、Crystal 製品群に含まれる他の ソリューションへのアップグレードに依り、スケーラビリティが提供される。
・以前のバージョンのCrystal Reports for Visual Studio 2005 からスムーズに移行出来る。
・Crystal Reports for Visual Studio .NET の以前のバージョンで作成されたプロジェクトは、実行時に サポートされ、デザイン時の修正は不要で有る。
■ Crystal Reports for Visual Studio 2005 の新機能
Crystal Reports for Visual Studio 2005 には多くの新機能が有る。
・Crystal Reports for Visual Studio 2005 プロジェクトは、64 ビットマシン上でサポートされる。 ・Crystal Reports は、Visual Studio 2005 で新しく導入された Windows アプリケーションの機能の
ClickOnce デプロイメントを完全にサポートして居る。
・Crystal Reports のコードスニペットは、Visual Basic を使用して Web サイトや Windows プロジェ クトを作成する場合に使用出来る。
・CrystalReportViewer コントロールでは、幾つかの機能が改良されて居る。 ・Crystal Reports for Visual Studio 2005 ではアクセシビリティが向上した。
・Crystal Reports for Visual Studio 2005 では、Unicode や中国語エンコード規格 GB18030-2000 を 使用した各国文字をサポートして居る。
・Crystal Reports for Visual Studio 2005 では、埋め込み Crystal Reports Designer に[プレビュー] タブが追加され、レポートをデザイン時にプレビューする事が出来る。
・プロジェクトテンプレートは、CrystalReportViewer コントロール内に表示される Crystal レポート の例を表示する為に、新しいWeb サイトや Windows プロジェクトを作成する時に選択出来る。
■ Visual Studio 2005 での Windows プロジェクトの設定 ■
此のセクションは、上級と中級の開発者の孰れにも重要な学習ポイントで有る。新しいWindows プロ ジェクトをCrystal Reports for Visual Studio 2005 で作成、及び、設定する際の、推奨されるベストプ ラクティスを示す。
此のセクションでは、コーディングモデルを使用した Windows プロジェクトの設定を示す。此の設定 の一部と仕て、Form1 クラスと入力コードに付いて説明する。此処で作成する此のコードベースの Windows プロジェクトは、オンラインヘルプで提供されるコーディングチュートリアルに取っての必 要条件と成る。「チュートリアルとサンプルコード」を参照され度い。
■ Visual Studio 2005 での新しい Windows プロジェクトの作成
Windows プロジェクトを作成する前に、Crystal Reports for Visual Studio 2005 がシステムにインス トールされて居る事を確認する。「必須インストール」を参照され度い。
Crystal Reports for Visual Studio 2005 を使用して Windows プロジェクトを設定する 1.Visual Studio 2005 を起動する。 2.[ファイル]メニューの[新規作成]を選択し、次に[プロジェクト]をクリックする。 3.[新しいプロジェクト]ダイアログボックスで、[プロジェクトの種類]リストからVisual Basic 又 はC# の言語フォルダを選択する。 4.テンプレートのリストから[Windows アプリケーション]をクリックする。 5.[名前]フィールドで、既定のプロジェクト名をユーザー指定のプロジェクト名に書き換える。 此処では Pascal の命名規則を適用し、プロジェクト名の最初の文字を大文字にする(プロジェク トから生成されるアセンブリの名前空間名と仕てプロジェクト名が使われる為で有る)。 6.[OK]をクリックする。 ■ 標準 Visual Basic プロジェクト設定の適用 此のドキュメントのチュートリアルで動作する様にプロジェクトを設定するには、Visual Basic プロジ ェクトのプロジェクト設定を少し変更する必要が有る。 プロジェクトをC# で開発して居る場合は、「Windows フォームの準備」に移行して良い。
Crystal Reports for Visual Studio 2005 で Visual Basic プロジェクトのプロジェクト設定を修正する 1・ソリューションエクスプローラで、ソリューション名の下に太字で表示されて居るプロジェクト名 を右クリックし、[プロパティ]を選択する。 2.[プロパティ]ビューの[コンパイル]タブをクリックする。 3.[OptionStrict]リストで、[オン]をクリックする。 4.[プロパティ]ビューを閉じる。 5.[ファイル]メニューの[総て保存]をクリックする。
※ ベストプラクティスと仕て、総ての Visual Basic プロジェクトの最初で、OptionStrict を有効にす る事を推奨する。此れに依り、コードを記述する時に、厳密に型指定された変数宣言と有効なキャ ストを行うベストプラクティスが強制的に使用される。此等は孰れも、コンパイル時にチェックさ れる。コンパイル時のチェックを必ず実行する事で、実行時の例外が減少する。
■ Visual Studio 2005 での Windows フォームの準備
従来のVisual Basic 6 で作成される Windows アプリケーションは、通常 Form1 と謂う名前でデフォル トのフォームを定義して居た。Windows プロジェクトでも此のパターンに従い、同じデフォルトのフ ォーム名Form1 を使用する。拡張子は、使用する開発言語に応じて .cs 又は .vb に成る。
Crystal Reports for Visual Studio 2005 で Windows フォームを準備する
1.メインウィンドウにForm1 が表示されて居ない場合は、ソリューションエクスプローラで[Form1] をダブルクリックする。 Designer に[Form1]が表示される。 2.[表示]メニューの[コード]をクリックする。 Form1 クラスのコードビューが表示される。此のクラスの表示は、Windows アプリケーションが Visual Basic 又は C# の孰れでプログラムされたかに依存する。 C# では、Form1 クラスは次の様に表示される。 クラス署名 コンストラクタ(Form1)
Visual Basic では、Form1 クラスは次の様に表示される。 クラス署名(Form1 クラス)
※ Form1 クラスに追加されたメソッドや変数は、別のパーシャルクラスに格納される。此れは、C# で もVisual Basic でも同様で有る。
次に private helper メソッドを追加し、此のクラスに Crystal Reports を設定する総てのコードの指定 場所と仕て使用する。
Crystal Reports 設定コードのプライベートヘルパーメソッドを追加する
1 . 此 の Form1 ク ラス に 、 戻 り 値 の 無 い 新 し い プ ラ イ ベ ー ト ス コ ー プ の ヘ ル パ ー メ ソ ッド ConfigureCrystalReports を追加する。
Visual Basic
Private Sub ConfigureCrystalReports( )
…
End Sub
C#
private void ConfigureCrystalReports( ) { … } 次 に Form_Load イ ベ ン ト ハ ン ド ラ を 追 加 し 、 Form_Load イ ベ ン ト ハ ン ド ラ に 有 る ConfigureCrystalReports を 呼 び 出 す 。 此 れ に 依 り 、 フ ォ ー ム の ロ ー ド 時 に 自 動 的 に ConfigureCrystalReports メソッドが実行される。 2.[ファイル]メニューの[デザイナ]をクリックする。
3.[Form1]をダブルクリックする。
コードビューに戻る。Form1 をダブルクリックした為、Form1_Load イベントハンドラが Form1 クラスに自動的に作成される。 4.Form1_Load イベントハンドラで、ConfigureCrystalReports メソッドの呼び出しを入力する。 Visual Basic ConfigureCrystalReports( ) C# ConfigureCrystalReports( ); 5.[ファイル]メニューの[総て保存]をクリックする。
■ Visual Studio 2005 での CrystalReportViewer コントロールの追加
Windows フォームにレポートを表示するには、CrystalReportViewer コントロールを追加する。 Crystal Reports for Visual Studio 2005 で CrystalReportViewer コントロールを追加する 1.デザインビューでForm1 を開く。
2.ツールボックスから、Crystal Reports ノードを開き、CrystalReportViewer コントロールを探す。 3.CrystalReportViewer コントロールをフォーム上にドラッグアンドドロップする。 CrystalReportViewer コントロールでは、「スマートタスクパネル」と呼ばれる新しい GUI 機能が コントロールの右上隅に表示される。 ※ 此れは、.NET バージョン 2.0 で提供される減少したコードに依る開発モデルの一部で有る。 CrystalReportViewer コントロールのスマートタスクパネルは、GUI 設定を使用してレポート のバインドやコントロールのレイアウト等の機能設定を単純化する。此処では、コードベース の開発モデルを使用して居る為、設定にはスマートタスクパネルを使用しない。 4.スマートタスクパネルが開いて居る場合は、CrystalReportViewer コントロールの右上隅に有る矢 印トグルをクリックして、スマートタスクパネルを閉じる。 5.CrystalReportViewer コントロールをクリックして選択する。 6.[プロパティ]ウィンドウから、Name プロパティを以下の様に設定する。
Visual Basic Windows プロジェクトの場合は、Name プロパティに myCrystalReportViewer を設 定する。
C# Windows プロジェクトの場合は、Name プロパティに crystalReportViewer を設定する。 7.[ファイル]メニューの[総て保存]をクリックする。 8.[ビルド]メニューの[ソリューションのビルド]をクリックする。 ConfigureCrystalReports が正常に追加されて居る事を確認する 1.[表示]メニューで、[其の他のウィンドウ]、[Object Browser]の順にクリックする。 2.Object Browserでプロジェクト名のノードを展開し、次にプロジェクト名の名前空間ノードを展 開して、[Form1]クラスをクリックする。
Form1 クラスのメンバが表示される。此れには、CrystalReportViewer 変数(Form1.Designer.cs パーシャルクラスから)及び ConfigureCrystalReports メソッド(Form1.cs パーシャルクラスか ら)の両方が含まれて居る。
Visual Studio 2005 では、Form1.cs(又は .vb)と此れに対応するファイルの Form1.designer.cs(又 は .vb)は、夫々れのメンバを共有する単一の Form1 クラスに両方ともコンパイルされる。
此れは、.NET フレームワークバージョン 2.0 の新機能で有るパーシャルクラスに依り可能と成る。 partial と謂う名前のクラス修飾子をクラス署名に追加出来る。此の修飾子は、此のクラスファイルが 同名の既存のクラスに追加されて居る事を示す。
此れは、Windows フォームに次の様な影響を及ぼす。
Visual Studio .NET 2002 又は 2003 の場合、Form1.cs(又は .vb)ファイルには、Windows フォーム に追加されたコントロールのクラスレベル宣言等の多数の自動生成コードや、其のフォームやコントロ ールに関するイベント等の設定コードが含まれて居た。Visual Studio 2005 では、此の自動生成コード は、より目立た無いForm1.designer.cs(又は .vb)ファイルに移動されて居る。此のファイルは、Form1 パーシャルクラスで有る。此れに依り、元のForm1 クラスは Form1 パーシャルクラスから総ての自動 生成コードにアクセス出来る様に成ると同時に、開発者が記述する追加コードを制限し無い様に成る。 名前空間を参照するImports/Using 文を追加する 1.ソリューションエクスプローラに[参照]フォルダが表示され無い場合は、ソリューションエクス プローラのツールバーで[総てのファイルを表示]をクリックして、総てのプロジェクトファイル を表示する。 2.ソリューションエクスプローラで、[参照]フォルダを展開する。 3.次のCrystal Reports アセンブリが追加されて居る事を確認する。 CrystalDecisions.CrystalReports.Engine CrystalDecisions.Shared 4.Form1 を選択し、[表示]メニューの[コード]をクリックする。 Form1 クラスのコード ビューが表示される。
5.クラス署名の上で、Imports(Visual Basic)、又は、using(C#)宣言を、次の Crystal Reports 名前空間を含むクラスの先頭に追加する。 Visual Basic Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.Shared C# using CrystalDecisions.CrystalReports.Engine; using CrystalDecisions.Shared;
■ 追加設定要件 ■
Crystal Reports for Visual Studio 2005 プロジェクトが設定され、コード化の準備が出来た。但し、選 択するチュートリアルやレポートをバインドするシナリオに依っては、追加の設定作業が必要に成る場 合も有る。 次の表は、各チュートリアルとレポートをバインドするシナリオで完了する必要が有る追加のオプショ ンを示して居る。 http://msdn2.microsoft.com/ja-jp/library/ms227530(VS.80).aspx ■ サンプルレポートディレクトリへの既存のレポートの追加 既存のレポートをサンプルレポートディレクトリからWindows プロジェクト、又は、Web プロジェク トに追加する ※ 此の手順は、「プロジェクトの設定」で作成されたプロジェクトに而巳有効で有る。プロジェクトの 設定には、此のプロジェクトに必要な特定の名前空間参照とコード設定が含まれる為、此の設定な しに手順を完了する事は出来ない。従って、此の手順を始める前に先ず、「プロジェクトの設定」の 手順を実行して置く必要が有る。 1.[プロジェクト]メニューから[既存項目の追加]をクリックする。 2.[既存項目の追加]ダイアログボックスで、[ファイルの種類]に総てのファイル(*.*)を指定する。 3 .Crystal Reports のサンプルレポートディレクトリの Feature Examples フォルダに有る
Hierarchical Grouping.rpt ファイルに移動する(サンプルレポートの場所に付いては、「サンプル
レポートのディレクトリ」を参照され度い。)
※ Hierarchical Grouping レポートは、Access データベースの xtreme.mdb からデータを取得す る為、此のデータベースの場所と其のODBC DSN 設定を確認して置く。 4.Hierarchical Grouping.rpt ファイルをクリックして選択し、次に[開く]をクリックする。 Hierarchical Grouping.rpt ファイルがプロジェクトに追加される。 プロジェクトに追加したレポートは、埋め込みレポートと成る。詰まり、プロジェクトに追加された総 てのレポートは、コンパイル時にプロジェクトのアセンブリに埋め込まれる為、レポートを手動でプロ ジェクトにリンクさせる必要は無い。 コード化する場合は、其のレポートファイルをラップ(表示)するレポートクラスが自動的に生成され る。次に、此のレポートクラスをインスタンス化し、CrystalReportViewer コントロールにバインドす る。 ※ 埋め込みレポートの詳細に付いては、「埋め込みレポートと埋め込みで無いレポートの選択」を参照 され度い。
Crystal Reports for Visual Studio 2005 のサンプルレポートのディレクトリ
C:¥Program Files¥Microsoft Visual Studio 8¥Crystal Reports¥Samples¥Jp¥Reports¥Feature Examples¥ 及び
■ 埋め込みレポートの CrystalReportViewer コントロールへのバインド 此のセクションでは、プロジェクトが埋め込みレポートを検索、及び、表示する為の、埋め込みレポー トの最も単純なバインド方法に付いて説明する。 埋め込みレポートをCrystalReportViewer コントロールにバインドする 1.Web フォーム、又は、Windows フォームをデザインビューで開く。 2.[表示]メニューから[コード]をクリックし、此の Web フォーム、又は、Windows フォームの 分離コードクラスを表示する。 3.変数 hierarchicalGroupingReport を使用して、Hierarchical_Grouping レポートラッパークラス の新しいクラスレベル宣言をクラスの先頭に追加する。アクセス修飾子をprivate に設定する。 Visual Basic
Private hierarchicalGroupingReport As Hierarchical_Grouping
C#
private Hierarchical_Grouping hierarchicalGroupingReport;
4.「プロジェクトの設定」の手順で追加した ConfigureCrystalReports メソッドで、レポートラッパ ークラスをインスタンス化する。
Visual Basic
hierarchicalGroupingReport = New Hierarchical_Grouping( )
C#
hierarchicalGroupingReport = new Hierarchical_Grouping( );
5.レポートのインスタンス化の下に有る行で、CrystalReportViewer の ReportSource プロパティを インスタンス化したレポートクラス(変数名はhierarchicalGroupingReport)にバインドする。 Visual Basic myCrystalReportViewer.ReportSource = hierarchicalGroupingReport C# crystalReportViewer.ReportSource = hierarchicalGroupingReport; 此れでプロジェクトをビルドして実行する事が出来る。 プロジェクトをビルド、及び、実行する 1.[ビルド]メニューの[ソリューションのビルド]をクリックする。 2.ビルドエラーが有る場合は、此処で修正する。 3.[デバッグ]メニューの[開始]をクリックする。 ビルドエラーが表示され無い場合は、プロジェクトはWeb ブラウザ(Web)又は、Windows アプ リケーション(Windows)にロードされ、 Web フォーム、又は、Windows のフォーム上で生成さ れたHierarchical Grouping レポートを表示する。
■ 埋め込みレポートと埋め込みで無いレポートの選択 ■
Crystal Reports SDK を使用してアプリケーションのビルドを計画するに当り最も重要な検討事項の 1 つに、埋め込みレポートと埋め込みで無いレポートの選択が有る。レポートの埋め込みに影響を与える SDK の基本を理解する事に依り、目的の Crystal Reports for Visual Studio 2005 プロジェクトに最も 適した構造を選択出来る。
※ Visual Studio 2005 では、Crystal Reports レポートファイルは Web プロジェクトに埋め込まれる 事は無い。従って、レポートラッパークラスは作成されない。レポートはフォルダに格納され、総 ての埋め込みで無いレポートと同様に、レポートのファイルディレクトリパスに依り参照される必 要が有る。此の場合、ディレクトリパスは現在のWeb サイトフォルダへのパスで有る。
但し、Visual Studio 2005 の Windows プロジェクトは、以前の Visual Studio.NET バージョンから変 更されて居ない。此のプロジェクトでは引き続き埋め込みレポートを使用する。
■ 埋め込みレポートと埋め込みで無いレポートの相違点
埋め込みレポートは、Visual Studio .NET プロジェクトにインポートされたレポート、又は、Visual Studio 2005 プロジェクトで作成されたレポートで有る。レポートがプロジェクトに埋め込まれると、 其のレポートのラッパークラスが自動的に生成される。 埋め込みで無いレポートは、其のVisual Studio 2005 プロジェクトに属さ無いレポートで有る。レポー トとのプログラムに依る対話を可能にする目的で、此のレポートにアクセスしてオブジェクトモデルに ロードする方法は多数有る。併し、レポート自体は常にVisual Studio 2005 プロジェクトの外部に存在 する。 ■ 埋め込みレポートの機能 レポートがプロジェクトにインポートされた場合や、プロジェクト内でレポートが作成された場合には、 レポートと同じ名前のラッパークラスが作成される。此のラッパークラスは、プロジェクト内のレポー トをラップ(表示)する。ラッパークラスが作成されると、プロジェクトの総てのコードは元のレポー トファイル其の物ではなく、其のレポートの代わりと成る為に作成された此のレポートクラスと対話す る。 此のプロジェクトをコンパイルすると、他のプロジェクトリソースの場合と同様に、レポートとラッパ ークラスの両方がアセンブリに埋め込まれる。 レポートラッパークラスは、共通の基本クラスで有る ReportDocument から継承する。此れは、 ReportDocument の総てのプロパティとメソッドを継承する。 ※ 此のマニュアルの以前のバージョンでは、埋め込みレポートは、厳密に型指定されたレポートと呼 ばれて居た。Visual Studio 2005 プロジェクトに追加、又は、インポートされたレポートを意味す る用語と仕て、現在は、『埋め込み』が使用されて居る。 ReportDocument は、ReportDocument オブジェクトモデルのルートクラスで有る。
■ 埋め込みで無いレポートの機能 埋め込みで無いレポートは、次の様々な方法で常に外部からアクセスされ、SDK にアクセス可能と成 る。 ・ファイルディレクトリパスが示すハードディスクドライブにレポートが置かれて居る場合 ・レポートWeb サービスと仕てレポートが公開されて居る場合 ・レポートがCrystal サービスを経由して公開されて居るレポートのグループの内の 1 つで有る場合 埋め込みで無いレポートは、プロジェクトにインポートされ無い為、埋め込みレポートとは異なり、レ ポートラッパークラスは作成されない。其の代わり、埋め込みで無いレポートは、次の夫々れの方法で 実行時にオブジェクトモデルの1 つにロードされる。 ・ReportDocument オブジェクトモデルは、ReportDocument.Load メソッドを使用してレポートを ReportDocument オブジェクトモデルにロードする。 ※ 此れは、ファイルディレクトリ パスに置かれて居るレポートの場合に而巳適用される。 ・CrystalReportViewer オブジェクトモデルは、CrystalReportViewer.ReportSource プロパティを使 用して、レポートをコントロールに直接バインドする。 ※ ReportDocument オブジェクトモデルの使用を推奨する。 埋め込みレポートを選択する場合と埋め込みで無いレポートを選択する場合 プロジェクトのデプロイメントを単純化し度い場合には、埋め込みレポートを使用する。此れに依って、 操作するファイル数が少なく成り、レポートを正しく無いファイルディレクトリパスに置き間違える心 配が無く成る。亦、此の選択に依り、変更の為にレポートを公開する場合のセキュリティが高まる。 更に、初めてVisual Studio 2005 を使用して Crystal Reports の構築とデプロイメントを学習する場合 には、レポートを埋め込む操作の方がより容易で有る。一旦レポートが埋め込まれると、其のレポート はクラスと仕てプロジェクト内に存在する事に成る為、レポートを IntelliSense 経由で取得し Object Browser で表示出来る。レポートがファイルディレクトリ内で移動、又は、削除されたり、ファイルの パスを不正確に記述したりする心配が無い。 一方、次の様な場合には、埋め込みで無いレポートを使用する。 埋め込みレポートは簡単でセキュリティが高いものの、追加の操作が必要に成る。埋め込みレポートを 変更する場合には、プロジェクト全体を再コンパイルする必要が有る。定期的にレポートを変更する必 要が有る場合には、レポートを埋め込まずに置く方がレポートへのアクセスや変更が容易に成る。変更 の度にアセンブリを再コンパイルする必要が無く成る。 亦、埋め込みで無いレポートはスケーラビリティの点で優れて居る。 レポートのバインドに付いてのシナリオで、埋め込みレポートと埋め込みで無いレポートをバインドす る方法が数多く示される。ReportDocument を両方のタイプのレポートへの一般的なクラスと仕て使用 する方法に付いても学習出来る。此れに依り、アプローチの変更が必要に成った場合でも、コードの変 更を最低限に抑える事が出来る。
■ 必須インストール ■
Crystal レポートを使用する Web 又は Windows アプリケーションを作成するには、先ず、Crystal Reports for Visual Studio 2005 をインストールする必要が有る。
■ Visual Studio バージョン
Crystal Reports は、個別のアプリケーションと仕て購入する事も、Microsoft Visual Studio の多くの バージョンに付随してインストールされるバージョン(Crystal Reports for Visual Studio)と仕て購入 する事も出来る。
Crystal Reports for Visual Studio を使用する場合は、インストール済みの Visual Studio のバージョン にCrystal Reports for Visual Studio がバンドルされて居るか何うか確認する必要が有る。
Visual Studio は、次のバージョンで使用する事が出来る。
バージョン 有無
Visual Studio .NET 2002 Standard(C#、Visual Basic、C++) × Visual Studio .NET 2002 Professional、又は、其れ以上のバージョン ○ Visual Studio .NET 2003 Standard(C#、Visual Basic、C++) × Visual Studio .NET 2003 Professional、又は、其れ以上のバージョン ○ Visual Studio 2005 Express Edition(C#、Visual Basic、C++、SQL、J#、Web Developer) × Visual Studio 2005 Professional、又は、其れ以上のバージョン ○ Crystal Reports コンポーネント
デフォルトでは、Crystal Reports コンポーネントは Visual Studio インストールの一部と仕てインスト ールされる。Crystal Reports コンポーネントをインストールする必要が有る場合は、Visual Studio イ ンストーラを再起動し、エンタープライズ開発ツールを追加する指示に従う。
■ チュートリアルとサンプルコード ■
此のセクションでは、Crystal Reports for Visual Studio 2005 での作業に役立つ様々なチュートリアル を示す。各チュートリアルでは、ステップバイステップ方式のガイドに従って、各種レポーティングシ ナリオのソリューションと成るプロジェクト作成の総てを行う。
Crystal Reports for Visual Studio 2005 で作業する場合のベストプラクティスを理解するには、幾つか のチュートリアルを学習する事を推奨する。
各チュートリアルには、プロジェクトの完全バージョンを示す、C# 及び Visual Basic で記述されたサ ンプルコードプロジェクトが付属して居る。此等のプロジェクトの大半は、Web 専用、又は、Windows 専用に作成された物を除き、Web サイト、及び、Windows プロジェクトの両方と仕て提供される。 http://msdn2.microsoft.com/ja-jp/library/ms227881(VS.80).aspx