印刷 -...

36
VS 2005 資料 【電脳梁山泊 烏賊塾】 -1- CrystalReportViewer クラス CrystalReportViewer コントロールの表示と機能に付いての情報を変更・取得するプロパティ、メソッ ド、及びイベントが有る。 解説 CrystalReportViewer コントロールを使用すると、 Crystal Report をアプリケーション内で表示出来る。 ReportSource プロパティを使用して、表示するレポートを設定する。此のプロパティを設定すると、 レポートが CrystalReportViewer コントロール内に表示される。レポートのソースには、 ReportDocument、レポートファイルへのパス、又は、厳密に型指定されたレポートを使用出来る。 CrystalReportViewer コントロールの使用方法の詳細に付いては、Report Viewers、及び、Windows プロジェクトの作成に関する Project Setup を参照され度い。 CrystalReportViewer メンバ パブリックプロパティ ActiveViewIndex CrystalReportViewer コントロール内のアクティブなビューの インデックスを取得・設定する。 BackColor コントロールの背景色を取得・設定する。 BackgroundImage コントロールに表示される背景イメージを取得・設定する。 BackgroundImageLayout System.Windows.Forms.ImageLayout 列挙で定義される背景イ メージレイアウトを取得・設定する。 DisplayBackgroundEdge レポートをビューウィンドウの枠から離して表示するか何うか を判別する。 DisplayGroupTree ツリービューを表示するか何うかを取得・設定する。 DisplayStatusBar ステータスバーを表示するか何うかを取得・設定する。 DisplayToolbar ツールバーを表示するか何うかを取得・設定する。 EnableDrillDown ユーザーがレポートをドリルダウン出来るか何うかを取得・設定 する。 EnableToolTips レポートビューアにツールヒントを表示するか何うかを取得・設 定する。 EnterpriseLogon 企業レポートのログオン情報を取得・設定する。 LogOnInfo TableLogOnInfos コレクションを取得・設定する。 ParameterFieldInfo パラメータフィールドのコレクションを取得・設定する。 ReportSource CrystalReportViewer コントロールにバインドするレポートを 設定する。 ReportSourceClassFactoryName 内部の ReportSource オブジェクトの作成に必要な情報を取得・ 設定する。 RightToLeft ヘブライ語やアラビア語のフォントの使用時等に、テキストを右 から左に表示するか何うかを取得・設定する。 SelectionFormula レポートのレコード選択式を取得・設定する。 ShowCloseButton CrystalReportViewer コントロールツールバーにレポートペー ジを閉じるボタンを表示するか何うかを取得・設定する。 ShowExportButton CrystalReportViewer コントロールツールバーに、エクスポート のボタンを表示するか何うかを取得・設定する。 C Cr ry ys st t a al l R Re ep po or rt t

Transcript of 印刷 -...

Page 1: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-1-

■ CrystalReportViewerクラス ■

CrystalReportViewerコントロールの表示と機能に付いての情報を変更・取得するプロパティ、メソッ

ド、及びイベントが有る。

■ 解説

CrystalReportViewerコントロールを使用すると、Crystal Reportをアプリケーション内で表示出来る。

ReportSource プロパティを使用して、表示するレポートを設定する。此のプロパティを設定すると、

レポートが CrystalReportViewer コントロール内に表示される。レポートのソースには、

ReportDocument、レポートファイルへのパス、又は、厳密に型指定されたレポートを使用出来る。

CrystalReportViewer コントロールの使用方法の詳細に付いては、Report Viewers、及び、Windows

プロジェクトの作成に関する Project Setupを参照され度い。

■ CrystalReportViewerメンバ

パブリックプロパティ

ActiveViewIndex CrystalReportViewer コントロール内のアクティブなビューのインデックスを取得・設定する。

BackColor コントロールの背景色を取得・設定する。

BackgroundImage コントロールに表示される背景イメージを取得・設定する。

BackgroundImageLayout System.Windows.Forms.ImageLayout列挙で定義される背景イメージレイアウトを取得・設定する。

DisplayBackgroundEdge レポートをビューウィンドウの枠から離して表示するか何うかを判別する。

DisplayGroupTree ツリービューを表示するか何うかを取得・設定する。

DisplayStatusBar ステータスバーを表示するか何うかを取得・設定する。

DisplayToolbar ツールバーを表示するか何うかを取得・設定する。

EnableDrillDown ユーザーがレポートをドリルダウン出来るか何うかを取得・設定する。

EnableToolTips レポートビューアにツールヒントを表示するか何うかを取得・設定する。

EnterpriseLogon 企業レポートのログオン情報を取得・設定する。

LogOnInfo TableLogOnInfosコレクションを取得・設定する。

ParameterFieldInfo パラメータフィールドのコレクションを取得・設定する。

ReportSource CrystalReportViewer コントロールにバインドするレポートを設定する。

ReportSourceClassFactoryName 内部の ReportSourceオブジェクトの作成に必要な情報を取得・設定する。

RightToLeft ヘブライ語やアラビア語のフォントの使用時等に、テキストを右から左に表示するか何うかを取得・設定する。

SelectionFormula レポートのレコード選択式を取得・設定する。

ShowCloseButton CrystalReportViewer コントロールツールバーにレポートページを閉じるボタンを表示するか何うかを取得・設定する。

ShowExportButton CrystalReportViewerコントロールツールバーに、エクスポートのボタンを表示するか何うかを取得・設定する。

CCrryyssttaallRReeppoorrtt 印印刷刷

Page 2: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-2-

ShowGotoPageButton CrystalReportViewerコントロールツールバーに、ページ番号を指定するボタンを表示するか何うかを取得・設定する。

ShowGroupTreeButton CrystalReportViewerコントロールツールバーに、グループツリーの表示/非表示を切り換えるボタンを表示するか何うかを取得・設定する。

ShowPageNavigateButtons CrystalReportViewerコントロールツールバーに、ページナビゲーションのボタンを表示するか何うかを取得・設定する。

ShowPrintButton ツールバーに[印刷]ボタンを表示するか何うかを取得・設定する。

ShowRefreshButton ツールバーに[最新表示]ボタンを表示するか何うかを取得・設定する。

ShowTextSearchButton ツールバーに[検索]ボタンを表示するか何うかを取得・設定する。

ShowZoomButton ツールバーに拡大率リストを表示するか何うかを取得・設定する。

ViewCount CrystalReportViewerコントロール内のビューの数を取得する。

ViewTimeSelectionFormula レポートで現在使用されて居るデータをフィルタする為のレコード選択式を取得・設定する。

パブリックメソッド

CloseView CrystalReportViewerコントロール内のビューのタブを閉じる。

DrillDownOnGroup グループをドリルダウンする。

ExportReport CrystalReportViewer コントロールに表示されて居るレポートをエクスポートする。

GetCurrentPageNumber レポートの現在のページ番号を取得する。

PrintReport CrystalReportViewer コントロールに表示されて居るレポートを出力する。

RefreshReport CrystalReportViewer コントロールに表示されて居るレポートを最新表示する。

SearchForText 指定されたテキストをレポートから検索する。

ShowFirstPage レポートの最初のページを表示する。

ShowGroupTree グループツリーを CrystalReportViewer コントロールに表示する。

ShowLastPage レポートの最後のページを表示する。

ShowNextPage レポートの次のページを表示する。

ShowNthPage レポートの指定されたページを表示する。

ShowPreviousPage レポートの前のページを表示する。

Zoom CrystalReportViewerコントロールの拡大率を変更する。

パブリックイベント

Drill レポートがドリルダウンされると発生する。

DrillDownSubreport ユーザーがサブレポートをドリルダウンすると発生する。

Error CrystalReportViewer コントロールでエラーが発生すると発生

する。

HandleException CrystalReportViewer コントロールで例外が発生すると発生す

る。

Navigate ユーザーがレポートをナビゲートすると発生する。

ReportRefresh レポートのデータが最新表示されると発生する。

Search レポートでテキストが検索されると発生する。

ViewZoom CrystalReportViewer コントロールの拡大率が変更されると発

生する。

Page 3: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-3-

■ ReportDocumentクラス ■

レポートを表す。レポートを定義、書式設定、ロード、エクスポート、及び、印刷するプロパティとメ

ソッドが含まれる。

此のタイプのメンバの一覧に付いては、ReportDocumentのメンバを参照され度い。

■ 解説

レポートの定義と書式設定、エクスポートオプションの設定、印刷オプションの設定、及び、レポート

オプションの設定に使用するプロパティとメソッドには、ReportDocumentのプロパティを介して返さ

れるオブジェクトを通じてアクセス出来る。

■ ReportDocumentメンバ

パブリックプロパティ

Database Databaseオブジェクトを取得する。

DataDefinition DataDefinitionオブジェクトを取得する。

DataSourceConnections レポート内の総てのテーブルの接続情報を含む IConnectionInfo

オブジェクトのコレクションで、サブレポートは含まれない。

EnterpriseSession BusinessObjects Enterpriseで RASサーバーを管理して居る場

合、EnterpriseSessionオブジェクトへの参照を取得・設定する。

ExportOptions ExportOptionsクラスインスタンスを取得する。

FileName レポートファイルの名前を指定する。プロトコルかドライブ文字

が指定されて居る場合は、デフォルトで "ras://" と記述される。

FilePath プロトコルの前置記号を付けずに、レポートファイルの名前を指

定する。

HasSavedData レポートに保存されたデータがメモリ内に有るか何うかを取得

する。

IsLoaded レポートが Loadメソッドを使ってロードされたか何うかを取得

する。

IsSubreport レポートがサブレポートで有るか何うかを取得する。

Name レポート名を取得する(メインレポートの場合、レポート名は空

に成る)。

ParameterFields パラメータのフィールドを取得する。

PrintOptions PrintOptionsオブジェクトを取得する。

RecordSelectionFormula レコード選択式を取得・設定する。

ReportAppServer Report Application Server(RAS Server)の名前を取得・設定

する。

ReportClientDocument ReportClientDocument クラスから Report Application Server

API を利用出来る(ReportDocument.ReportAppServer から

Report Application Serverへポイントして居ない場合、此のプロ

パティは例外をスローする)。

ReportDefinition ReportDefinition オブジェクトを取得する。

ReportOptions ReportOptions オブジェクトを取得する。

Subreports サブレポートで有る(Subreportsオブジェクトを取得する)。

SummaryInfo SummaryInfoオブジェクトを取得する。

Page 4: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-4-

パブリックメソッド

Close レポートを閉じる。

EnableEventLog プリントエンジンのイベントログを有効にする(デフォルトで

は、ログは有効に成って居ない)。

Export ExportOptionsオブジェクト内で指定された形式で、指定された

出力先にレポートをエクスポートする。

ExportToDisk レポートを指定の形式でファイルにエクスポートする。

ExportToHttpResponse レポートを指定の形式で応答オブジェクトにエクスポートする。

ExportToStream レポートを指定の形式でストリームにエクスポートする。

GetConcurrentUsage 開発者がアプリケーションにライセンス監視を組み込める様に

同時に開かれて居るジョブの数を返す。

Load 新規レポートをロードする(レポートが既にロードされて居る場

合は、其れを閉じて新しいレポートを開く)。

OpenSubreport レポートに含まれるサブレポートを開き、指定されたサブレポー

トに対応する ReportDocumentオブジェクトを返す。

PrintToPrinter PrintOptions.PrinterName プロパティで選択されたプリンタ

に、レポートの指定されたページを印刷する(プリンタを選択し

て居ない場合は、レポートで指定されたデフォルトのプリンタが

使用される)。

Refresh 保存データを削除する(此れで、以後レポートを表示する時に、

新しいデータがロードされる)。

SaveAs レポートを指定のファイルに保存する。

SetCssClass 様々なセクションやレポートオブジェクトのカスケードスタイ

ルシート(CSS)を設定する。

SetDatabaseLogon ユーザー名とパスワードを使ってログオン情報を設定する。

SetDataSource オブジェクトをレポートエンジンに渡す。

SetParameterValue パラメータフィールドの現在値を設定する(値には、プリミティ

ブ 、 ParameterValue 、 孰 れ か の タ イ プ の 配 列 、 又 は

ParameterValuesコレクションを指定出来る)。

VerifyDatabase ReportDocument オブジェクトがロードするレポートに対して

データベース接続がアクティブで有るか何うかを確認する。

Page 5: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-5-

■ レポートビューアコントロール ■

Crystal Reports for Visual Studio 2005 には、レポートを表示する為の標準フォームコントロールが含

まれて居る。各コントロールは、ツールボックス内の GUI オブジェクトに複雑なレポートレイアウト

情報をカプセル化する。

次の 2つのコントロールが提供される。

・CrystalReportViewerコントロール

此のコントロールでは、レポートがページベースのレイアウトで表示され、ページ間を移動する事が

出来る。

・CrystalReportPartsViewerコントロール

此のコントロールでは、レポート集計情報が小さいポータル型のウィンドウに表示され、リンクされ

た一連のパーツを通じてレポートにより深くドリルダウン出来る。

各コントロールはレポートを表示する為に使用する。此れは、ツールボックスからコントロールをWeb

フォームや Windows フォーム上にドラッグアンドドロップし、其のコントロールの ReportSource プ

ロパティをレポートに割り当てて行う。

ビューアコントロールと其の使用法の詳細に付いては、後述の「レポートビューアコントロールの使用

方法」を参照され度い。

Page 6: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-6-

■ レポートビューアコントロールの使用方法 ■

Crystal Reports SDKを使用してアプリケーションのビルドを計画するに当り、最も重要な検討事項の

1 つに、レポートビューアコントロールの使用方法が有る。此等のコントロールに影響を与える SDK

の基本を理解する事に依り、目的の Crystal Reports for Visual Studio 2005プロジェクトに最も適した

構造を選択出来る。

此の項では、下記の事項に付いて、解説する。

・レポートビューアコントロールとは

・CrystalReportViewerコントロール

・CrystalReportPartsViewerコントロール

■ レポートビューアコントロールとは

レポートビューアコントロールは、WindowsアプリケーションやWebアプリケーションにフォームを

追加し、其のフォームでレポートを表示する為の.NETコントロールで有る。

.NETコントロールとは

Microsoft.NETコントロールは、Visual Studio 2005のツールボックスに表示される特別なタイプのク

ラスで有る。此等のコントロールは、GUI オブジェクトと仕て Web フォームや Windows フォームに

追加され、標準の基本コントロールクラスを継承する。標準的な.NET コントロールには、Button、

DropDownList、CheckBox、TextBox、DataGrid等が有る。

Microsoft.NETのコントロールは、プレゼンテーション層とビジネスロジック層の分離と謂うベストプ

ラクティスに準拠して居る。此等のコントロールはWebフォームやWindowsフォーム上で、表示情報

をコントロール自体の中にカプセル化する。コード分離クラスでは、.NET コントロールはクラスレベ

ルインスタンスと仕てインスタンス化される。此のインスタンス変数は、コントロールのプロパティ、

メソッド、及び、イベントへのアクセスを可能にする。

Microsoft.NETコントロールは、WindowsフォームとWebフォームの両方で同じ様に機能する。.NET

フレームワークは、Windowsアプリケーションでの場合と同様に、各Webページをコントロールが含

まれるフォームと仕て表示する。

Crystal Reports がレポートの表示に.NETコントロールを使用する理由

レポート作成ツールの長所の 1 つは、レポート構造やデザイン、表示に於ける複雑な処理を、単純な

GUIツールの中にカプセル化する事で有る。同様に、.NETコントロールは複雑な表示やデータ入力を

WebフォームやWindowsのフォームの単純な GUIオブジェクトにカプセル化する。

.NET コントロールを使用する事に依り、レポートの作成や其の表示に関する複雑な処理を 1 つに纏め

る事が出来る。此れ迄 Crystal Reportsのスタンドアロンアプリケーション丈でカプセル化されて居た

総ての複雑なレポート情報は、レポートビューアと仕て.NET コントロールの中にカプセル化される様

に成った。

Page 7: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-7-

レポートビューアコントロールの数

Crystal Reports for Visual Studio 2005 には、Webアプリケーション用とWindowsアプリケーション

用の 2 つのバージョンの CrystalReportViewer コントロールが付属して居る。CrystalDecisions.Web

名前空間に有る CrystalReportViewerコントロールは、ASP.NET Webプロジェクトに依って使用され

る。CrystalDecisions.Windows.Forms名前空間に有るCrystalReportViewerコントロールは、Windows

プロジェクトに依って使用される。

※ Crystal Reports for Visual Studio 2005では、付属の CrystalReportViewerコントロールに複数の

重要な強化が行われて居る。詳細付いては、「CrystalReportViewerコントロールの使用方法」を参

照され度い。

亦、Webページにレポートパーツ而巳を表示する場合は、CrystalReportPartsViewerコントロール

を使用する。レポートパーツコントロールを使用する方法に付いては、「CrystalReportPartsViewer

コントロールを使ったレポートパーツの表示」を参照され度い。

CrystalReportViewerコントロールを使用してレポートを表示する

CrystalReportViewerコントロールは、1度に 1つのレポート丈を表示する。コントロールが表示する

レポートは、ユーザーがコードにバインドするレポートに依って決まる。表示するレポートをコントロ

ールに指示するには、コントロールの ReportSource プロパティを其のレポートにバインドする。実行

時に、コントロールは ReportSource プロパティにバインドされたレポートをロードし、此れを表示す

る。

最も単純なフォームでは、割り当ては次の様に成る。

Visual Basic

crystalReportViewer1.ReportSource = "C:¥WorldSalesReport.rpt"

C#

crystalReportViewer1.ReportSource = "C:¥¥WorldSalesReport.rpt";

此の場合、レポートはファイルディレクトリのパスからコントロールに直接バインドされて居る。

此れは、レポートを CrystalReportViewer コントロールにバインドする為の最も基本的な方法で有る。

レポートをバインドするシナリオの詳細一覧に付いては、「レポートをバインドする適切なシナリオの

選択」を参照され度い。

CrystalReportViewerコントロールのバインド

DataGrid 等のデータ表示や DataSet 等のデータオブジェクトへのバインドに使用される其他の.NET

コントロールの様に、CrystalReportViewerコントロールもデータオブジェクトにバインドするのかと

謂えば然うではない。CrystalReportViewerコントロールは、データオブジェクトではなく、レポート

オブジェクトにバインドする。

此れは、CrystalReportViewer コントロールの目的が他の.NET コントロールとは異なる為で有る。他

の.NETコントロールは、データにバインドして生データをページ上で書式設定する。埋め込み Crystal

Reports Designerでは、データの取得と表示をカプセル化した定義に依って、レポートを作成する度に

此の処理が自動的に行われる。其の為、CrystalReportViewerコントロールはレポートオブジェクトの

表示而巳を行う。

Page 8: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-8-

下記の表は、.NETデータコントロールにバインドする場合と CrystalReportViewerコントロールにバ

インドする場合の比較で有る。

コントロールのタイプ .NET データコントロール

(DataGridコントロール等)

.NET レポートビューアコントロール

(CrystalReportViewerコントロール等)

バインド先 データオブジェクト

( DataSet 、 DataReader 、

DataView 、 IDictionary 、

ICollection、DataTable)

Crystalレポートファイルをカプセル化す

るレポートオブジェクト

次の層への接続 無し Crystalレポートファイルは、組み込みデ

ータ接続を備えて居る。此れは、ODBC

や OleDb 等の各種データソースや

DataReader オブジェクトや DataSet オ

ブジェクト等に接続する。

CrystalReportViewer コントロールがデータオブジェクトではなくレポートオブジェクトにバインド

する事を解り易く示す為に、此のレポートビューアコントロールのソースプロパティは DataSourceで

はなく ReportSourceと名付けられて居る。

レポートの自動バインド

CrystalReportViewer コントロールのバインドに関するもう 1 つの特徴は、大部分の.NET コントロー

ルとは異なり、バインドの為のメソッドを手動で呼び出す必要が無いと謂う点で有る。此のコントロー

ルは、自動的にレポートビューアをレポートオブジェクトにバインドする。レポートのバインドに付い

ての詳細は、「レポートをバインドする適切なシナリオの選択」を参照され度い。

■ CrystalReportViewerコントロール

CrystalReportViewer コントロールは、.NET Framework でのレポートのバインドおよび表示に使用

します。

※ CrystalReportViewer コントロールを Web サイトや Windows プロジェクトに追加し、これを設

定してレポートを表示する方法については、「プロジェクトの設定」を参照してください。

Crystal Reports for Visual Studio 2005 には数多くの機能が搭載され、これまでのバージョンの

CrystalReportViewer コントロールが強化されています。これらの機能は、次の 3 つのカテゴリに分

類されます。

・WindowsプロジェクトとWebサイトの両方で使用出来る機能

・Windowsプロジェクト丈で使用出来る機能

・Webサイト丈で使用出来る機能

Windows とWeb

・スマートタスク

・ツールヒントを使用不可にするオプション

・Errorイベント

・マルチリンガルクライアントサポート

・Unicode及び GB18030の文字エンコード方式のサポート

Page 9: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-9-

Windows 限定

・プロパティウィンドウからのレポートの選択

・デザイン時プレビュー(Windowsに追加)

Web限定

・[プロパティ]ウィンドウから Crystal Reportsへの自動データバインド

・タグベースアプリケーション開発モデル

・CrystalReportSourceコントロール

・CrystalReportViewerコントロールをカスタマイズする為のカスケードスタイルシート

・CrystalReportViewerコントロールの Themes

・CrystalReportViewerコントロールをネストするMultiviewコントロール又はWizardコントロール

▼ スマートタスク

Visual Studio 2005で.NETコントロールをWebフォームやWindowsフォームに追加すると[スマー

トタスク]パネルが表示される。[スマートタスク]は、.NETコントロールの右上隅に追加される小さ

いパネルで有る。パネルを開くと、パネルにはチェックボックスとコンボボックスが用意されて居て、

開発者は此等のボックスを使って接続やコントロールの其他のオプションを選択出来る。此の機能に依

り、開発者が記述する必要が有るコードの量が大幅に少なく成る。

Webサイトでは、[スマートタスク]パネルで選択を行うと、ASPXページで XMLが自動生成される。

Windows プロジェクトでは、[スマートタスク]パネルで選択を行うと、非表示クラスファイルでコー

ドが自動生成される。非表示クラスファイルは、既存の Windows フォームクラスへの追加と仕て機能

する部分クラスで有る。部分クラスは、.NET Frameworkバージョン 2.0の新機能で有る。

CrystalReportViewer コントロールに依って、[スマートタスク]パネルを充分に活用出来る。パネル

で利用出来る選択肢は、WebプロジェクトとWindowsプロジェクトで異なる。

次の各[スマートタスク]パネルの詳細に付いては、該当するリンクをクリックされ度い。

・CrystalReportViewerのWebサイト用のスマートタスク

・CrystalReportViewerのWindowsプロジェクト用のスマートタスク

スマートタスクと減少したコードモデルの制限

スマートタスクに依って、コードを自動生成して、手動でコードを記述するよりも作業時間を減らす事

が出来る、減少したコードモデルの作成が促進される。

但し、自動生成コードを使用すると、初めは時間が節減されるが、プロジェクトに後から機能や柔軟性

を追加し度い場合、減少したコードモデルからコーディングモデルに切り替えるのが困難で有る。

減少したコードモデルを使用した Crystal Reportsプロジェクトの開発

減少したコードモデルを使って Crystal ReportsでWebサイトやWindowsプロジェクトを構築する場

合は、次の孰れかの[スマートタスク]チュートリアルを参照され度い。

・スマートタスク使用の Crystal Reportsでの減少したコードに依るWebサイトの設定

・スマートタスク使用の Crystal Reports での減少したコードに依るWindowsプロジェクトの設定

Page 10: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-10-

コーディングモデルを使用した Crystal Reportsプロジェクトの開発

Crystal Reportsで、コードを手動で記述してWebサイトやWindowsプロジェクトを構築する場合は、

「プロジェクトの設定」を参照され度い。

▼ ツールヒントを使用不可にするオプション

レポートのセクションの上にマウスを移動すると、ツールヒント機能に依りコンテキスト情報が表示さ

れる。

現在は、此のオプションが追加され、CrystalReportViewer クラスの新しい EnableTooltips プロパテ

ィを使用して、ツールヒント機能をグローバルに使用不可にする事が出来る。此のプロパティを False

に設定すると、ツールヒント情報はグローバルに無効に成る。

▼ Errorイベント

Crystal Reports for Visual Studio .NETの以前のバージョンでは、CrystalReportViewerコントロール

を使用する度に、スローされる可能性が有る総ての例外をトラップする必要が有った。キャッチされな

いで残された例外が有ると、ページの処理が中断され、エラーが表示される。

中断とエラーを回避する為に、Errorイベントと謂う新しいイベントが CrystalReportViewerコントロ

ールに追加された。Error イベントを使用すると、CrystalReportViewer コントロールは、処理を中断

する事無く CrystalReportViewerコントロールの上部に例外メッセージを表示する。

スローされた例外を非表示にするには、Error イベントメソッドを呼び出して、イベントハンドラで

ErrorEventArgs.Handled を Trueに設定する。

Errorイベントメソッドを使ってエラーページを非表示にする

1.Errorイベントメソッドを分離コードクラスに追加する。

Visual Basic

Sub myCrystalReportViewer_Error( _

ByVal source As Object, ByVal e As CrystalDecisions.Web.ErrorEventArgs)

End Sub

C#

void crystalReportViewer_Error(object source, CrystalDecisions.Web.ErrorEventArgs e)

{

}

2.イベントハンドラで ErrorEventArgs.Handled を Trueに設定する。

Visual Basic

e.Handled = True

C#

e.Handled = true;

Page 11: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-11-

▼ マルチリンガルクライアントサポート

Crystal Reports for Visual Studio 2005 は、動的なロケール設定に依って、様々な言語を使用するWeb

やWindowsのクライアントをサポートする。

動的なロケール設定に依り、ユーザーはツールヒント等の CrystalReportViewerコントロールのコンテ

ンツを、希望の言語で参照出来る。

言語リソース

WebサーバーやWindowsクライアントでは、次の 2つのソースから CrystalReportViewerコントロー

ル用の言語リソースにアクセス出来る。

・デフォルトの言語リソース DLL(次の言語が含まれる)

・英語(en)

・フランス語(fr)

・ドイツ語(de)

・スペイン語(es)

・イタリア語(it)

・日本語(jp)

・韓国語(ko)

・簡体字中国語(zh-chs)

・繁体字中国語(zh-cht)

此等の言語リソースは、Business Objects Webサイトからダウンロード出来る。

注:デフォルトの言語リソースファイルの全リストに付いては、ヘルプの「デフォルト及びカスタム

言語リソースファイルの使用」を参照され度い。ダウンロード場所に付いては、「役に立つアドレス

の一覧」を参照され度い。

・カスタム言語リソースファイル(文字列と仕て作成した後に、カスタム言語リソース DLL と仕てコ

ンパイルする。

注:カスタム言語リソース DLL の作成方法に付いては、チュートリアル「マルチリンガルクライア

ントサポートの設定」を参照され度い。

ニュートラルリソースと非ニュートラルリソース

言語リソースには、ニュートラルと非ニュートラルのリソースが有る。

ニュートラルリソースとは、en(英語)、fr(フランス語)、及び、jp(日本語)等の一般的な言語設定

で有る。

非ニュートラルリソースとは、例えば、ドイツ語(オーストリア)用の de-ATの様に、地域等の追加基

準に基づいて設定される言語バージョンで有る。

グローバルリソースとローカルリソース

デフォルト言語リソースは GAC にインストールされる為、常にグローバルで使用出来る。一方、カス

タム言語リソースは、グローバル、又は、ローカルの孰れかでアクセスする。

此のカスタム言語リソースフォルダをネットワークの中央に保存して其処で共有する事も出来るが、

WebやWindowsのアプリケーションのローカルディレクトリにコピーする事も出来る。

Page 12: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-12-

カスタム言語リソースを中央に保存した場合、此のリソースは「グローバルリソース」と呼ばれる。此

のシナリオでは、XML 設定ファイルでの設定に依り、Web や Windows アプリケーションに対してリ

ソースの位置を伝える必要が有る。グローバルリソースを正しくロードするには、リソースファイルが

含まれるフォルダの名前と言語のロケールが一致する必要が有る。

ローカルディレクトリにリソースをコピーした場合には、カスタム言語リソースは「ローカルリソース」

と呼ばれる。此のシナリオでは、設定ファイルは必要無い。ローカルリソースを正しくロードするには、

リソースファイルのカルチャとリソースファイルが含まれるフォルダの名前が言語のロケールと一致

する必要が有る。

注:グローバルリソースとローカルのリソースの設定や使用方法の詳細に付いては、チュートリアルで

説明されて居る。「マルチリンガルクライアントサポートの設定」を参照され度い。

グローバルリソースとローカルリソースの選択

リソースを複数のアプリケーションで共有する必要が有る場合は、グローバルリソースが適して居る。

例えば、Webサーバーに複数のWebサイトが有り、其の総てのWebサイトで標準セットの言語リソー

スを共有する必要が有る場合等は、グローバルリソースの使用が適して居る。

広範な配布により単純な設定が指定されて居る単一のアプリケーション丈でリソースを使用する場合

には、ローカルリソースが適して居る。例えば、Windows アプリケーションは、広範な配布を目的と

した単一のアプリケーションフォルダで構成されて居る為、ローカルリソースの使用が最適で有る。

殆どの場合、Web アプリケーションにはグローバルリソースを選択し、Windows アプリケーションに

はローカルリソースを選択するのが適切で有る。

初めにロードするリソース

特定のアプリケーションに対してローカルとグローバルの両方のリソースを設定する場合には、ローカ

ルリソースの優先順位が高く成る(ロードの順序が先に成る)。確実にグローバルリソースを使用し度

い場合は、設定ファイルが正しく機能する事を確認してからローカルリソースフォルダを削除する。

非ニュートラルとニュートラルのリソースも、リソースのロード順の影響を受ける。特定の言語に非ニ

ュートラルとニュートラルの両方のリソースを設定して居る場合には(ドイツ語(オーストリア)とド

イツ語等)、非ニュートラルのリソースが最初にチェックされる。

孰れの場合も、特殊なリソースの方が、一般的なリソースよりも優先順位が高く成る。

クライアント側の表示

実行時にクライアントアプリケーションで表示される言語は、次の要因に依り決定される。

Windows アプリケーションの場合

・各ユーザーのマシンの環境ロケール設定

Webサイトの場合

・Webサーバーの環境ロケール設定

・クライアント ブラウザの言語設定

・個々の ASPXページにユーザーが設定する地域言語プロパティ

Page 13: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-13-

▼ Unicode及び GB18030の文字エンコード方式のサポート

Crystal Reports for Visual Studio 2005は、次の文字集合規格に含まれる各国文字をサポートする。

・Unicode

・GB18030

Crystal Reports が Unicode と GB18030 でのエンコーディングを何の様にサポートするかを理解する

には、文字に関する 3つの観点(文字群、コードポイントと仕ての文字、コード化データと仕ての文字)

を理解する必要が有る。亦、コードポイント(より正確なコード化文字の表現)とコード単位の関係に

付いても理解する必要が有る。

次のリンクをクリックして、目的の節にジャンプされ度い。

・文字の観点

・コードポイントとコード単位の関係

・Crystal Reportsによる Unicode 経由での GB18030のサポート

文字の観点

文字集合規格を理解するには、文字に関する次の 3つの観点を個々に理解する必要が有る。

・文字群(文字の概要リスト)

・スカラ値を持つコードポイントと仕ての文字

・コード化されたデータと仕ての文字

文字群(文字の概要リスト)

文字群は 100万文字を超える文字の概要リストで、此処に含まれる文字は、ラテン語、キリル語、中国

語、韓国語、日本語、ヘブライ語、及び、アラム語等、様々なスクリプトで使用される。音符等の記号

も亦、文字群に含まれる。

Unicode 規格と GB18030 規格には、夫々れ文字群が有る。1 つの規格に新しい文字が追加されると、

他方の規格にも其の文字が追加され、パリティが維持される。

スカラ値を持つコードポイントと仕ての文字

注:此の 2つめの観点はUnicode丈に当て嵌り、GB18030には該当しない。

文字群に含まれる夫々れの文字には、コードポイントが割り当てられる。各コードポイントには、スカ

ラ値と呼ばれる特定の数値が有る。多く場合、スカラ値は 16進数で表される。

コードポイントは、コードスペースに置かれる。コードスペースは、スカラ値の範囲で構成され、次の

2つの面に分けられる。

・BMP(基本多言語面)(サイズ:64K)。

Unicodeの場合、此の下位多言語面に含まれる値の 16進式の範囲は、U+0000からU+FFFFで有る。

Page 14: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-14-

・SMP(補助多言語面)(サイズ:64Kの 16の補助セクション)。

Unicode の場合、此の上位多言語面に含まれる値の 16 進式の範囲は、U+10000 から U+10FFFF で

有る。

使用可能な全スカラ値のコードスペースの合計サイズは、17 * 64k(使用可能な値の数:1,088,000)で

有る。

コード化されたデータと仕ての文字

夫々れのエンコード方式に依り、文字は文字群からコード化データへと変換される。

GB18030 の場合、コード化データは、文字群から直接生成される。文字群とコード化データを媒介す

るスカラ値と謂う概念は、Unicode 丈で使用される。

Unicodeの場合、コード化データは、スカラ値にアルゴリズムを適用する事に依って生成される。

Unicodeは、次の 3つの文字エンコード方式を定義する。

・UTF-8

・UTF-16

・UTF-32

コードポイントとコード単位の関係

Crystal Reports for Visual Studio 2005に依る GB18030とUnicodeのサポート方法を理解するには、

コードポイントとコード単位の関係を理解する必要が有る。

コードポイントとコード単位

個々のエンコードで、コードポイントは 1つ、又は、複数のコード単位にマップされる。

注:コードポイントの概要に付いては、前のセクション「文字の観点」を参照され度い。

コード単位は、各エンコード形式に含まれる 1つの単位で有る。コード単位のサイズは、個々のエンコ

ード形式のビット値と同じで有る。

・UTF-8のコード単位は、8ビットで構成される。

・UTF-16のコード単位は、16ビットで構成される。

・UTF-32のコード単位は、32ビットで構成される。

・GB18030では、コード単位は 8ビットで構成される。

各コードポイントのコード単位数

コードポイントへのマップが必要なコード単位数は、エンコード形式に依って異なる。

・UTF-8

UTF-8では、コード単位が比較的小さい事から、1コードポイントに付き、複数のコード単位をマッ

プする事が一般的で有る。コードポイントは、1、2、3、又は、4つのコード単位にマップされる。

Page 15: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-15-

・UTF-16

UTF-16コード単位の大きさは、8ビットのコード単位の 2倍で有る。従って、U+10000よりもスカ

ラ値が小さいコードポイントは、1つのコード単位でエンコードされる。

スカラ値が U+10000 以上のコードポイントの場合は、コードポイント毎に 2 つのコード単位が必要

に成る。此等のコード単位のペアには、UTF-16独自の Unicodeサロゲートペアが含まれる。

注:Unicodeサロゲートペアのサポートに付いては、後述する。

・UTF-32

UTF-32 で使用される 32 ビットのコード単位は、所有るコードポイントを 1 つのコード単位でエン

コード出来る大きさと成る。

・GB18030

GB18030では、コード単位が比較的小さい事から、1コードポイントに付き、複数のコード単位をマ

ップする事が一般的で有る。コードポイントは、1、2、又は、4つのコード単位にマップされる。

Unicodeサロゲートペアのサポート

Unicode がサポートするスクリプトに、U+10000 以上のスカラ値を持つコードポイントの文字が含ま

れる場合が有る。UTF-16 では、此の様なコードポイントを、サロゲートペアを使用してエンコードす

る。

Unicodeサロゲートペアは、適切に処理する必要が有る。例えば、エンコードに UTF-16を使用するア

プリケーションでテキストを操作して居る場合、切り取り、コピー、貼り付け操作の為に文字を追加、

削除、又は、選択する時は、各コードポイントを 1つのテキスト文字と仕てテキストカーソルを動かす

必要が有る。

Crystal Reports に依るUnicode 経由での GB18030のサポート

Crystal Reports for Visual Studio 2005は、GB18030を直接サポートして居ない。孰れかのUnicode エ

ンコード形式に変換済みの値を通して、GB18030にアクセスする。

変換には、.NET Framework、一部のデータベースドライバ、Windows オペレーティングシステム等、

数多くのソースを使用出来る。テキストは通常、UTF-8と仕てハードドライブに保存され、UTF-16と

仕てメモリにロードされる。Crystal Reportsは、UTF-16で Unicodeサロゲートペアをサポートして

居る。

Unicodeを使用した GB18030のサポート例

Unicode変換に依る GB18030サポートの提供領域と仕て把握するべき重要な場所は、次の通りで有る。

・GB18030でコード化されたデータを含むデータベース

GB18030 でコード化されたデータベースデータは、データベースドライバがデータの取得時に此れ

を UTF-16に読み替える場合に而巳サポートされる。

注:Microsoft SQL Server 2005は、データの取得時に、GB18030データを UTF-16に読み替える。

其他のサーバーに付いては、使用して居るデータベースプロバイダに問い合わせられ度い。

・GB18030ソースからデータを公開する DateSets

ソースに拘らず、DataSetsはUTF-8でコード化された XMLと仕てフォーマットされる。

Page 16: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-16-

・GB18030ソースからデータを公開するWebサービス

Webサービス経由で送受信された総てのテキストは、Unicodeに変換済みで有る。

サポートされて居ない GB18030シナリオ

Crystal Reportsが GB18030をサポートしない主な状況と仕ては、GB18030でコード化されたテキス

トファイルへのアクセス、及び、此のファイルのインポートが挙げられる。

GB18030 でコードされたテキストファイルは、先ず、サードパーティに依って Unicode に変換する必

要が有る。変換後、Crystal Reportsは、其のUnicodeでコード化されたテキストファイルと対話出来

る様に成る。

▼ プロパティウィンドウからのレポートの選択

Windows プロジェクトで、CrystalReportViewer コントロールを使ってレポートを選択して表示する

には、ReportDocumentコンポーネントをページ上にドラッグしてコンポーネントのレポートを設定し

てから、分離コードクラスでレポートを CrystalReportViewerコントロールにバインドする必要が有る。

Crystal Reports for Visual Studio 2005 では、CrystalReportViewerコントロールのレポート選択が簡

素化された。CrystalReportViewerコントロールをWindows フォームに追加したら、[プロパティ]ウ

ィンドウに有る ReportSourceプロパティからレポートを選択出来る。

ReportSource プロパティはコンボボックスを表示する。コンボボックスをクリックすると、参照の選

択とプロジェクトに含まれる総ての埋め込みレポートの一覧が表示される。

ReportSource プロパティを使用して、レポートを選択する。レポートのデザイン時プレビューは、

CrystalReportViewer コントロールに表示される。詳細に付いては、「デザイン時プレビュー」を参照

され度い。

注:レポートのバインドの詳細に付いては、「レポートをバインドする適切なシナリオの選択」を参照

され度い。

Crystal Reports APIを使用してコーディングするプロジェクトの設定方法に付いては、「プロジェクト

の設定」を参照され度い。

▼ デザイン時プレビュー(Windowsに追加)

デザイン時プレビューは、レポートをデザイン時にプレビューする機能で有る。Crystal Reports for

Visual Studio.NET の以前のバージョンでは、レポートをファイルディレクトリパスと仕て[プロパテ

ィ]ウィンドウのReportSourceプロパティに割り当てた時、WebプロジェクトのCrystalReportViewer

コントロールでデザイン時プレビュー機能を利用出来た。

此の機能は、Windowsプロジェクトに追加された。レポートを[プロパティ]ウィンドウのReportSource

プロパティに割り当てると、デザイン時にレポートのプレビューがWindowsフォームに表示される。

Page 17: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-17-

■ CrystalReportPartsViewerコントロール

CrystalReportPartsViewer コントロールは、.NET Frameworkで、リンクされた一連のパーツと仕て

Crystal レポートをバインド、及び、表示する為に使用される。此のコントロールに依り、レポート情

報の表示に必要な領域を削減出来る事から、ポータル Web ページに少量のレポート情報を表示する様

な場合に理想的に機能する。

注:リンクされた一連のパーツと仕てレポートが機能する為の変更方法や、CrystalReportPartsViewer

コントロールへのバインドに付いては、チュートリアル「CrystalReportPartsViewer コントロールを

使ったレポートパーツの表示」を参照され度い。

Crystal Reports for Visual Studio 2005では、CrystalReportPartsViewerコントロールの機能が強化

され、Webパーツフレームワークや、ASP.NETバージョン 2.0を搭載したポータルフレームワークを

サポート出来る様に成った。

Web パーツフレームワークに依り、開発者は設定可能な Web パーツのページにコントロールをカプセ

ル化出来る。

Page 18: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-18-

■ 詳細情報 ■

■ プロジェクトの設定

此のセクションは、上級と中級の開発者の孰れに取っても重要な学習ポイントで有る。新しいWindows

プロジェクトやWebプロジェクトを Crystal Reports for Visual Studio .NET 2002、2003、及び、

Crystal Reports for Visual Studio 2005 で作成、及び、設定するに当たっての、推奨されるベストプラ

クティスを示す。

Visual Studio 2005でのプロジェクトの設定

Crystal Reports for Visual Studio 2005 では、WebアプリケーションとWindowsアプリケーションが

同様の構造ではなく成った。

・Web アプリケーションは、プロジェクトと仕てビルドされなく成った。現在は、Web サイトと仕て

ビルドされる。

此れは、Web アプリケーションをプロジェクトと仕て表現する事は無く成った事を意味する。Web

サイトフォルダのコンテンツは、Windows プロジェクトのコンテンツよりも単純化された。特に、

此れ迄プロジェクトとグローバルのファイル全体に及んで居た設定情報の殆どが削除され、其の残り

はWeb.configファイルに再配置されて居る。

・Windowsアプリケーションは、引き続きプロジェクトと仕てビルドされる。

Visual Studio 2005でのWindows プロジェクトの設定

此のセクションでは、コーディングモデルを使用した Windows プロジェクトの設定を示す。此の設定

の一部と仕て、Form1 クラスと入力コードに付いて説明する。此処で作成する此のコードベースの

Windows プロジェクトは、オンラインヘルプで提供されるコーディングチュートリアルに取っての必

要条件と成る。ヘルプの「チュートリアルとサンプルコード」を参照され度い。

Visual Studio 2005 で提供されて居る減少したコードのモデルを使用してWindows プロジェクトをビ

ルドする場合は、チュートリアル「スマートタスクを使用した Crystal Reports での減少したコードに

依るWindowsプロジェクトの設定」に進む。

此のセクションの手順は、下記の順に続けて完了する必要が有る。

・新しいWindowsプロジェクトの作成

・標準 Visual Basicプロジェクト設定の適用

・Windowsフォームの準備

・CrystalReportViewerコントロールの追加

新しいWindowsプロジェクトの作成

Windows プロジェクトを作成する前に、Crystal Reports for Visual Studio 2005 がシステムにインス

トールされて居る事を確認する。ヘルプの「必須インストール」を参照され度い。

Crystal Reports for Visual Studio 2005を使用してWindowsプロジェクトを設定する

Page 19: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-19-

1.Visual Studio 2005を起動する。

2.[ファイル]メニューの[新規作成]を選択し、次に[プロジェクト]をクリックする。

3.[新しいプロジェクト]ダイアログボックスで、[プロジェクトの種類]リストから C#又は Visual

Basicの言語フォルダを選択する。

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を有効にす

る事を推奨する。此れに依って、コードを記述する時に、厳密に型指定された変数宣言と有効なキャス

トを行うベストプラクティスが強制的に使用される。此等は孰れも、コンパイル時にチェックされる。

コンパイル時のチェックを必ず実行する事で、実行時の例外が減少する。

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クラス)

Page 20: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-20-

注:Form1 クラスに追加されたメソッドや変数は、別のパーシャルクラスに格納される。此れは、C#

でも Visual Basicでも同様で有る。パーシャルクラスに付いては、此の後の「Windowsプロジェクト

の設定」で説明する。

次に 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.[ファイル]メニューの[総て保存]をクリックする。

CrystalReportViewerコントロールの追加

Windows フォームにレポートを表示するには、CrystalReportViewerコントロールを追加する。

Crystal Reports for Visual Studio 2005で CrystalReportViewerコントロールを追加する

1.デザインビューで Form1を開く。

2.ツールボックスから、Crystal Reports ノードを開いて、CrystalReportViewer コントロールを探

す。

3.CrystalReportViewerコントロールをフォーム上にドラッグアンドドロップする。

Page 21: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-21-

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.ソリューションエクスプローラで、[参照]フォルダを展開する。

Page 22: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-22-

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 の様々なクラスに名前空間の前置記号を付けずにアクセスするには、此等の

名前空間をクラスの先頭で宣言する必要が有る。

此れで、プロジェクトの設定は完了した。但し、多くのチュートリアルには、サンプルレポートを追加

する等の追加設定が必要で有る。

■ CrystalReportViewerのWindowsプロジェクト用のスマートタスク

CrystalReportViewerのWindows 用の[スマートタスク]パネルを使用すると、Crystalレポートを作

成、選択、編集する事が出来る。亦、CrystalReportViewerコントロールをカスタマイズするオプショ

ンも用意されて居る。

次の各機能は、Windowsプロジェクトの[スマートタスク]パネルで使用出来る。

Crystalレポートの新規作成と編集

・新しい Crystalレポートの作成

此のメニューコマンドを使用すると、埋め込み Crystal Reports Designerを介してレポート作成する

事が出来る。

処理を完了すると、レポートを CrystalReportViewerコントロールにバインドして、直ちに表示する

レポートコードが自動生成される。

此の機能の使用方法に付いては、「スマートタスクを使用した Crystal Reportsでの減少したコードに

依るWindowsプロジェクトの設定」を参照され度い。

・Crystalレポートの選択

此のコンボボックスを使用すると、既存の Crystalレポートを選択する事が出来る。

処理を完了すると、レポートを CrystalReportViewerコントロールにバインドして、直ちに表示する

レポートコードが自動生成される。

CrystalReportViewerコントロールのカスタマイズ

・ツールバーを表示

此のチェックボックスを使用して、CrystalReportViewer コントロール ツールバーの表示/非表示を

切り替える事が出来る。

Page 23: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-23-

・グループ ツリーを表示

此のチェックボックスを使用して、CrystalReportViewerコントロールに有るグループツリーの表示

と非表示を切り替える事が出来る。

・ステータスバーを表示

此のチェックボックスを使用して、CrystalReportViewerコントロールに有るステータスバーの表示

と非表示を切り替える事が出来る。

・親コンテナでドッキングを解除する

此のメニューコマンドを使用すると、Dock プロパティを None 又は Fill に設定する事が出来る。デ

フォルトでは、CrystalReportViewerコントロールをWindowsフォームにドロップすると、Dockプ

ロパティは Fill に設定される。此のメニューコマンドをオンにすると、Dock プロパティの None が

終了し、Windows フォームや他のコンテナ内(Windows フォーム内の Panel コントロール等)で

CrystalReportViewerコントロールを自由に移動して、サイズを変更する事が出来る。

■ スマートタスク使用の Crystal Reports での減少したコードに依るWindows プロジェクトの設定

初めに

此のチュートリアルでは、Crystal Reports for Visual Studio 2005 でWindowsプロジェクトを作成す

る方法を学習する。次に、CrystalReportViewerコントロールをWindowsフォームに追加する。[スマ

ートタスク]パネルから埋め込み Crystal Reports Designerを開き、新しいレポートを作成する。スマ

ートタスク機能は、CrystalReportViewer コントロールにレポートをバインドするコードを生成する。

此のチュートリアル全体に於いて、此のレポートは次の 3つの方法でプレビュー出来る。

・埋め込み Crystal Reports Designerで、Visual Studio 2005の為の新しい[プレビュー]ボタンを使

用してプレビューする。

・Windowsフォームでダミーデータを使用してプレビューする。

注:Windowsフォームの此のプレビューは、デザイン時プレビューと謂う新しい機能で有る。

デザイン時プレビューは、レポートをデザイン時にプレビューする機能で有る。Crystal Reports for

Visual Studio.NETの以前のバージョンでは、レポートをファイルディレクトリパスと仕て[プロパ

ティ]ウィンドウの ReportSource プロパティに割り当てた時、Web プロジェクトの

CrystalReportViewerコントロールでデザイン時プレビュー機能を利用出来た。

此の機能は、Windows プロジェクトに追加された。レポートを[プロパティ]ウィンドウの

ReportSourceプロパティに割り当てると、デザイン時にレポートのプレビューがWindowsフォーム

に表示される。

・実行時にアプリケーションを構築してコンパイルする際にプレビューする。

此のチュートリアルの最後で、コードビューに切り替え、Crystal Reports for Visual Studio 2005 で減

少したコードの開発モデルが何の様に機能するかを確認する。

CrystalReportViewerコントロールを使用するWindowsプロジェクトの作成

Windows プロジェクトを作成する前に、Crystal Reports for Visual Studio 2005 がシステムにインス

トールされて居る事を確認する。詳細に付いては、ヘルプの「必須インストール」を参照され度い。

Page 24: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-24-

Crystal Reports for Visual Studio 2005で減少したコードのWindowsプロジェクトを設定する

1.Visual Studio 2005を起動する。

2.[ファイル]メニューの[新規作成]を選択し、次に[プロジェクト]をクリックする。

3.[新しいプロジェクト]ダイアログボックスで、[プロジェクトの種類]リストから C#又は Visual

Basicの言語フォルダを選択する。

4.テンプレートのリストから[Windowsアプリケーション]をクリックする。

5.[名前]フィールドで、デフォルトのプロジェクト名をユーザー指定のプロジェクト名に置き換え

る。

6.[OK]をクリックする。

ソリューションエクスプローラが開き、Form1クラスが含まれる。

7.Form1クラスを開く。

8.ツールボックスから、Crystal Reportsノードで、CrystalReportViewerコントロールを探す。

9.CrystalReportViewerコントロールをWindowsフォームにドラッグする。

A.[プロパティ]ウィンドウから、Nameプロパティを以下の様に設定する。

Visual Basicプロジェクトの場合は、値にmyCrystalReportViewerを設定する。

C#プロジェクトの場合は、値に crystalReportViewerを設定する。

B.[ファイル]メニューの[総て保存]をクリックする。

スマートタスクを使用するレポートの設定

Visual Studio 2005には、.NETコントロールで使用する、スマートタスクと呼ばれる新しい GUI機能

が有る。Windows プロジェクトの CrystalReportViewer コントロールの場合、スマートタスクパネル

は[CrystalReportViewer タスク]と謂う名前で有る。

CrystalReportViewer タスクのスマートタスクパネルを使用すると、コードを記述しなくても

CrystalReportViewer コントロールの複数の機能を設定する事が出来る。詳細に付いては、

「CrystalReportViewerのWindowsプロジェクト用のスマートタスク」を参照され度い。

スマートタスクで行った選択内容が、Form1のパーシャルクラスにコードと仕て生成される。此の非表

示のパーシャルクラスは、初期化コードとデザインコードを含む Visual Studio 2005の新しい機能で

有る。此のセクションでは、[CrystalReportViewerタスク]スマートタスクパネルと埋め込み Crystal

Reports Designerを使用して新しいレポートを設定する。減少したコードのチュートリアルでは、後で

スマートタスクの他の機能を学習する。

スマートタスクを使用するレポートの設定

1.CrystalReportViewerコントロールの右上隅に有る小さい三角形のボタンをクリックする。

CrystalReportViewerタスクのスマートタスクパネルが開く。

2.[レポートの新規作成]リンクをクリックする。

3.[新しい Crystalレポートの作成]ダイアログボックスに XtremeCustomers.rptと謂う名前を入力

し、[OK]をクリックする。

Crystal Reportsギャラリのダイアログボックスが開く。

4.[Crystal Reports ギャラリ]ダイアログボックスの[Crystalレポートドキュメントの新規作成]

パネルで、[レポートウィザードを使用]を選択する。

5.[エキスパートの選択]パネルで[標準]を選択し、[OK]をクリックする。

6.標準レポート作成ウィザードウィンドウの[利用可能なデータソース]パネルで、次の手順を実行

する。

a.[接続の新規作成]フォルダを展開する。

b.[ODBC(RDO)]フォルダを展開する。

Page 25: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-25-

7.ODBC(RDO)ウィンドウで「Xtremeサンプルデータベース用の ODBC DSNエントリ」の説明

に従って、使用して居る Crystal Reports のバージョンに合った ODBC DSN エントリを選択し、

[完了]をクリックする。

[ODBC(RDO)]フォルダが展開され、Xremeサンプルデータベースが表示される。

8.Tablesノードを展開し、Customer テーブルを選択する。

9.Customer テーブルをダブルクリックしてテーブルを[選択したテーブル]パネルに移動し、[次

へ]をクリックする。

A.Ctrl キーを押し乍ら、[顧客名]、[敬称]、[住所 1]、及び[市]をクリックする。

B.[>]ボタンをクリックして此等のフィールドを[表示するフィールド]パネルに移動し、[次へ]

をクリックする。

C.[利用可能なフィールド]パネルの[レポートフィールド]で{Customer.市}を選択し、[>]ボタ

ンをクリックして此のフィールドを[グループ化]パネルに移動し、[完了]をクリックする。

XtremeCustomersレポートが作成され、Visual Studioのメインウィンドウにロードされる。

D.ウィンドウの下部の[メインレポートプレビュー]をクリックする。

レポートはプレビューモードで表示され、Xtremeデータベースのデータが表示される。

注:[プレビュー]ボタンは、Crystal Reports for Visual Studio 2005 に付属する埋め込み Crystal

Reports Designerの新しい機能で有る。

E.ウィンドウの下部の[メインレポート]をクリックして、プレビューモードを終了する。

F.Form1クラスに戻る。

レポートがデザイン時プレビューモードで表示され、Webフォームにレポートのグラフィックのレ

イアウトが表示される。Form1 の下で、XtremeCustomers レポートがコンポーネント トレイに

表示される。

G.[ファイル]メニューの[総て保存]をクリックする。

レポートが作成され、CrystalReportViewer コントロールのレポートと仕て指定される。此の時点で、

レポート変数の名前を変更する事が出来る。

レポート変数の名前を変更する

1.コンポーネントトレイの XtremeCustomers1をクリックして選択する。

2.[プロパティ]ウィンドウで、[名前]フィールドを xtremeCustomersReportに設定する。

此れでプロジェクトをビルドして実行する事が出来る。

減少したコードのWindowsプロジェクトをテストする

1.[ビルド]メニューで[ソリューションのビルド]を選択する。

2.ビルドエラーが有る場合は、此処で修正する。

3.[デバッグ]メニューの[開始]をクリックする。

4.XtremeCustomersレポートが新しいWindowsアプリケーションに表示される。

5.Visual Studioに戻り、[停止]ボタンをクリックして、デバッグモードを終了する。

スマートタスクに依って生成されたコードの確認

此のセクションでは、スマートタスクに依って生成されたコードを確認する。スマートタグに依り、コ

ードを記述せずに Crystal ReportsでWindowsプロジェクトを設定出来る。

Page 26: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-26-

スマートタスクに依って生成されたコードを確認する

1.Form1クラスを開く。

2.[表示]メニューの[コード]をクリックする。

Form1クラスがコードビューで開き、空のクラスが表示される。

注:C#では、空のクラスにはクラスコンストラクタが表示される。

public Form1( )

{

InitializeComponent( );

}

次のコードが無い事に注意され度い。

・CrystalReportViewerコントロールのインスタンスの宣言

・XtremeCustomersレポートのインスタンス

・レポートを CrystalReportViewerコントロールにバインドするコード

存在しないコードは、パーシャルクラス内で非表示に成って居る。パーシャルクラスは、 .NET

Framework 2.0及び Visual Studio 2005の新機能で有る。パーシャルクラスに依って、クラスは別の

クラスファイルから追加部分を受け取る事が出来る。別のクラスファイルには、同じクラス名を付け、

其の先頭に partial と謂う文字を付ける。パーシャルクラスには、一般に、自動生成されたデザイナコ

ードが含まれる。

Form1クラスに表示されない自動生成されたコードを確認するには、CrystalReportViewerと非表示の

Form1のパーシャルクラスのレポートインスタンスを表示する。

非表示の Form1のパーシャルクラスを表示する

1.ソリューションエクスプローラのツールバーの[総てのファイルを表示]アイコンをクリックする。

2.Form1.cs又は Form1.vbを展開する。

Form1.Designer.cs又は.vbが表示される。

3.Form1.Designer.cs又は Form1.Designer.vbを右クリックし、[コードの表示]を選択する。

Form1のパーシャルクラスが開き、此のクラスに対して自動生成されたコードが表示される。此れ

には、CrystalReportViewer コントロールインスタンスの宣言、XtremeCustomers レポートイン

スタンス、及び、レポートを CrystalReportViewerコントロールインスタンスにバインドするコー

ドが含まれる。

纏め

此のチュートリアルでは、減少したコードの開発モデルに従い、Crystal ReportsのWindowsプロジェ

クトを作成した。

CrystalReportViewerコントロールを追加し、スマートタスクを使用してコードを記述せずに新しいレ

ポートを作成して CrystalReportViewerコントロールにバインドした。次に、スマートタスクで選択し

た内容に基づいて、非表示のパーシャルクラスに自動生成されたコードを確認した。

Page 27: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-27-

■ レポートをバインドする適切なシナリオの選択

Crystal Reports SDKを使用してアプリケーションの作成を計画するに当り最も重要な検討事項の 1つ

に、レポートをバインドするシナリオの選択が有る。レポートをバインドするシナリオに影響を与える

SDKの基本を理解する事に依り、目的の Crystal Reports for Visual Studio 2005プロジェクトに最も

適した構造を選択出来る。

注:殆どのWebサイトやWindows プロジェクトでは、チュートリアルで手順が説明されて居る『埋め

込みレポートにバインドする』と『埋め込みでないレポートにバインドする』と謂う、最も単純な 2つ

のシナリオを使用する事が出来る。従って、此のセクションを読む前に、チュートリアルとサンプルコ

ードのチュートリアルを実行され度い。

レポートビューア、及び、レポートのバインドに付いては、「レポートビューアコントロール」を参照

され度い。

使用するアプリケーションに最適な、レポートをバインドするシナリオを選択するには、「推奨シナリ

オの概要」を参照され度い。

レポートのバインドに使用出来る総てのシナリオの詳細な一覧は、「全シナリオの詳細一覧」を参照さ

れ度い。

■ 推奨シナリオの概要

使用するアプリケーションに最適な、レポートをバインドするシナリオの選択をサポートする為、此処

では推奨シナリオの長所と短所を纏め、広く使用されて居るシナリオに付いて其の理由を説明する。

注:殆どのWebサイトやWindows プロジェクトでは、チュートリアルで手順が説明されて居る『埋め

込みレポートにバインドする』と『埋め込みでないレポートにバインドする』と謂う、最も単純な 2つ

のシナリオを使用する事が出来る。従って、此のセクションを読む前に、チュートリアルとサンプルコ

ード.のチュートリアルを実行され度い。

Crystal Reports で推奨されるバインドのシナリオ

通常は、CrystalReportViewer オブジェクトモデルを使用するシナリオよりも、レポートを

ReportDocumentオブジェクトモデルにバインドするシナリオを推奨する(ヘルプの「ReportDocument

オブジェクトモデルに依るレポートのバインド」及び「CrystalReportViewerオブジェクトモデルに依

るレポートのバインド」を参照され度い)。此れは、プログラムに依るレポートとの対話に於いて

ReportDocument オブジェクトモデルの方がより豊富な機能の API を提供する為で有る。オブジェク

トモデルの詳細に付いては、ヘルプの「適切なオブジェクトモデルの選択」を参照され度い。

殆どの場合、Crystal Reports for Visual Studio 2005 では「埋め込みレポートクラスへのバインド」の

シナリオが使われる。此のシナリオは、パフォーマンスの最適化と謂う点では最善の選択とは謂えない

が、最も単純なメソッドを使用する。其のメソッドとは、レポートをプロジェクトに追加してレポート

ラッパークラスを作成し、其のレポートラッパークラスをインスタンス化して CrystalReportViewer

コントロールに渡すと謂う物で有る。レポートラッパークラスは ReportDocument基本クラスを継承す

る為、ユーザーは ReportDocumentオブジェクトモデルの総ての機能に対するアクセス権限を持つ。

註:Visual Studio 2005では、Crystal ReportsレポートファイルはWebプロジェクトに埋め込まれる

事は無い。従って、レポートラッパークラスは作成されない。レポートはフォルダに格納され、総ての

埋め込みでないレポートと同様に、レポートのファイルディレクトリパスに依り参照される必要が有る。

此の場合、ディレクトリパスは現在のWebサイトフォルダへのパスで有る。

Page 28: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-28-

Crystal Reports for Visual Studio 2005でのレポートのバインドに広く使用されて居るもう 1つの方法

は、「ReportDocumentにロードされる埋め込みでないReportクラスへのバインド」で説明されて居る。

此のシナリオは、ReportDocumentオブジェクトモデルの全機能へのアクセス権をユーザーに付与する

点は同じだが、埋め込みでないレポートのメリットも提供する為、ユーザーはアプリケーションの再コ

ンパイルをする事無くレポートを変更出来る。

レポートのバインドに ASP.NET Cacheオブジェクトを使用するシナリオも有る(ヘルプの「キャッシ

ュされた埋め込みレポートクラスへのバインド」及び「キャッシュ管理ユーティリティクラスにロード

される埋め込みでない Reportクラスへのバインド」を参照され度い)。此等のシナリオは、共有性の高

いレポートのパフォーマンスを最適化する。「共有性の高いレポートのキャッシュ」を参照され度い。

Report Application Server(RAS)で推奨されるバインドのシナリオ

アンマネージド Report Application Server(ヘルプの「アンマネージド Report Application Server」

を参照され度い)のライセンスを Crystal Reports for Visual Studio 2005アプリケーションに追加して

居る場合、次の機能が追加される。

・RASレポートエンジンに依る高いスケーラビリティ

・広範なレポート修正機能を提供する ReportClientDocumentオブジェクトモデルへのアクセス

RASの場合、目的のプロジェクトの設定に応じて、次の 3つのシナリオを使用してレポートをバインド

出来る。

・RAS 10で Crystal Reports 10を使用する場合は、1つのレポートに付き 2行のコードを追加する丈

で、元々埋め込みレポートを使用して Crystal Reports で作成されたプロジェクトを RAS と

ReportClientDocument オブジェクトモデルにポート出来る。ヘルプの「ReportDocument.Load メ

ソッドを使ったアンマネージド RAS へのバインド」を参照され度い。

・上記のシナリオを最適化するには、RASサーバーで埋め込みレポートのコピーを作成し、其のコピー

の使用を RAS に指示する。ヘルプの「ReportDocument.FileName プロパティを使ったアンマネー

ジド RASサーバーへのバインド」を参照され度い。

・RAS 10 で新しいプロジェクトを作成し、RAS 9 でも此れを操作するには、作成したレポートを

ReportClientDocumentオブジェクトモデルに直接ロードする。「ReportClientDocument.Openメソ

ッドを使ったアンマネージド RAS へのバインド」を参照され度い。

Crystal Reports Server又は BusinessObjects Enterpriseで推奨されるバインドのシナリオ

Crystal Reports Server又は BusinessObjects Enterpriseにアップグレードして居る場合、レポートの

バインドには、次の 4つのシナリオが有る。何のシナリオを選択するかに付いては、レポートの修正と

スケーラビリティに対するユーザーの必要条件に基づいて決定する。

・プログラムに依る修正無しに、最高の速さとパフォーマンスでレポートを表示出来る。ヘルプの

「ReportSource へのバインド(BusinessObjects Enterprise 11)」を参照され度い。

・ReportClientDocument オブジェクトモデルにアクセスする事に依り、表示プロセスの一部と仕て、

プログラムに依ってレポートを修正出来る。ヘルプの「ReportAppFactory.OpenDocumentメソッド

を使ったマネージド RASへのバインド」を参照され度い。

・Crystal Reports Server又は BusinessObjects Enterpriseで Crystal Reports Developerエディショ

ンを使用する場合は、元々埋め込みレポートを使用して Crystal Reportsで作成されたプロジェクト

を Crystal Reports Server 又は BusinessObjects Enterprise にポートすると同時に、其の埋め込み

レポートのコピーを Crystal Reports Server又は BusinessObjects Enterpriseに公開する事に依り

既存のレポートコードを維持出来る。レポートのコピーの参照に付いては、ヘルプの

「ReportDocument.FileNameプロパティを使ったマネージドRASへのバインド」を参照され度い。

Page 29: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-29-

・Enterprise フレームワークの InfoObject インスタンスと仕てレポートにアクセスする事に依り、レ

ポートのスケジュールと其のパラメータを変更する事が出来る。ヘルプの「レポートにキャストする

InfoObjectへのバインド」を参照され度い。

此のセクションの内容を学習した後、SDK で使用出来る総てのオプションに付いての理解を深める為

に、全シナリオの詳細な一覧が必要に成る事も予想される。「全シナリオの詳細一覧」を参照され度い。

■ 全シナリオの詳細一覧

レポートをバインドするシナリオの選択に当たっては、其のポイントを纏めた「推奨シナリオの概要」

を参照され度い。

注:殆どのWebサイトやWindows プロジェクトでは、チュートリアルで手順が説明されて居る『埋め

込みレポートにバインドする』と『埋め込みでないレポートにバインドする』と謂う、最も単純な 2つ

のシナリオを使用する事が出来る。従って、此のセクションを読む前に、チュートリアルとサンプルコ

ードのチュートリアルを実行され度い。

Crystal Reportsの全製品群は、4つのオブジェクトモデルに分類される。此等のオブジェクトモデルは

夫々れ、レポートを CrystalReportViewerコントロールにバインドする複数のシナリオを提供する。

CrystalReportViewerオブジェクトモデル

・コードに依るファイルディレクトリパスへのバインド

・プロパティウィンドウでのファイルディレクトリパスへのバインド

・CrystalReportSourceコントロールへのバインド(Visual Studio 2005のWebサイト)

・レポート Webサービス URLへのバインド

・Crystalサービスを使用して CrystalReportViewerをバインドするシナリオ

・サーバーファイル(VS.NET 2002と 2003)へのバインド

・Crystal Enterprise(VS.NET 2002と 2003)へのバインド

・サーバーファイルへのバインド(Visual Studio 2005)

・Crystal Reports Server又は BusinessObjects Enterpriseへのバインド(Visual Studio 2005)

・Report Application Serverへのバインド(Crystal Reports 9以降)

・Crystal Enterpriseへのバインド(Crystal Reports 9)

ReportSourceへのバインド(BusinessObjects Enterprise 11)

ReportDocumentオブジェクトモデル

・埋め込みレポートクラスへのバインド

・ReportDocumentにアップキャストする Reportクラスへのバインド

・ReportDocumentクラスにロードされる埋め込みでないレポートへのバインド

・キャッシュされた埋め込みレポートクラスへのバインド

・キャッシュ管理ユーティリティクラスにロードされる埋め込みでない Reportクラスへのバインド

・ReportDocumentコンポーネントに依るバインド

・Crystalサービスを使用して ReportDocumentをバインドするシナリオ(VS.NET 2002と 2003)

・Report Application Serverへのバインド(Crystal Reports 10以降)

・Crystal Enterpriseへのバインド(Crystal Reports 10以降)

Page 30: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-30-

アップグレードに依って使用可能なオブジェクトモデル

ReportClientDocumentオブジェクトモデル(RAS)

・ReportDocument.Loadメソッドを使ったアンマネージド RASへのバインド

・ReportDocument.FileNameプロパティを使ったアンマネージド RASサーバーへのバインド

・ReportClientDocument.Openメソッドを使ったアンマネージド RASへのバインド

・ReportDocument.Loadメソッドを使ったマネージド RASへのバインド

・ReportDocument.FileNameプロパティを使ったマネージド RASへのバインド

・ReportAppFactory.OpenDocument(プロパティを使ったマネージド RASへのバインド

InfoObject Object Model(BOE)

・レポートにキャストする InfoObjectへのバインド

■ CrystalReportPartsViewerコントロールを使ったレポートパーツの表示

此のチュートリアルでは、レポートをパーツに分割し、一連のハイパーリンクをクリックする事に依り

各パーツを表示する方法を学習する。ハイパーリンクに依って、全体のレポート集計グループから詳細

なレポート情報に移動する。全体の開始ポイントを設定し、次に連続した各ハイパーリンクをレポート

に対して設定する。レポートをパーツと仕て表示するには、レポートに CrystalReportPartsViewer と

謂う代替コントロールを割り当てる。

注:レポートパーツはWebサイトで而巳使用出来る。Windowsプロジェクトでは使用出来ない。

レポートの作成

レポートを表示するには、次の 2つの方法が有る。

・レポート全体を表示する。

・リンクされた一連のレポートパーツと仕てレポートを表示する。

レポート全体の表示

一般に、レポートは 1つ、又は、其れ以上のページから構成される 1つのドキュメントと仕て表示され、

詳細情報はカテゴリ別、サブカテゴリ別、及び、個々の詳細情報行別にグループ化して表示される。

例えば、Crystal Reportsに付属の Xtreme Accessデータベースには、世界各地の自転車販売店に関す

る顧客データが格納されて居る。レポートのデータを表示する標準的な方法は、地域と都市を基にグル

ープ化されて居る自転車販売店を個々に表示し、詳細レベルで各販売店の情報行を表示する。

レポート全体の表示には、CrystalReportViewerコントロールを使用する。

リンクされた一連のパーツと仕てのレポートの表示

Web ポータル、及び、携帯電話に依る Web ブラウズが普及したが、孰れも情報を見る為の表示領域が

限られる事から、レポートの新しい表示方法を開発した。

Page 31: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-31-

此の開発に当り、グループのカテゴリ、サブカテゴリ、及び、詳細行から構成されたオールインワンレ

ポートを、一連のレポートパーツと仕て定義し直した。此等のパーツは、リンクされた一連のページビ

ューに依って表示される。此のシナリオでは、最上位カテゴリグループの情報を先に表示する。上位グ

ループの項目を選択すると、グループ情報のサブカテゴリが表示される。此のドリルダウンは、特定サ

ブカテゴリの個々の詳細情報行に到達する迄続けられる。

例えば、Xtreme Accessデータベースの自転車販売店の顧客データは、最初は地域リストと仕て表示さ

れる。地域を 1つ選択すると、此の地域内の都市が表示される。特定の都市を選択すると、此の都市に

有る自転車販売店の詳細行が表示される。

レポートをパーツに分割する事に依って、限られた表示領域から大きい複雑なレポートへ効果的にアク

セス出来る様に成る。

リンクされた一連のパーツと仕てレポートを表示するには、CrystalReportPartsViewer コントロール

を使用する。

CrystalReportPartsViewer コントロールでレポートを使用する為の設定

此のチュートリアルでは、全体表示用のレポートを、リンクされた一連のパーツと仕てのアクセスが可

能なレポートにする為に、ハイパーリンク情報を追加する方法を学習する。

先ず、CrystalReportViewer コントロールを使用して標準プロジェクトを作成する。Xtreme サンプル

データーベースの Customerテーブルを基にレポートを作成し、レポート全体を CrystalReportViewer

コントロールに表示する。

次に、レポートを再び開いてレポートパーツ設定にアクセスし、初期エントリポイントをレポートに割

り当てる。通常、初期エントリポイントは最上位のグループカテゴリにする。詳細行レベルに到達する

迄、レポートグループのサブカテゴリ間を連結するハイパーリンクを追加する。

此れに依り、レポートはレポートパーツと仕て表示出来るが、此の時点では、Web フォームの

CrystalReportViewer コントロール内でレポート全体が表示される。レポートパーツを表示するには、

Webフォームの CrystalReportViewerコントロールを削除し、CrystalReportPartsViewerコントロー

ルに置き換える必要が有る。分離コードクラスのコントロールの変数名を更新する。プロジェクトに戻

ると、レポートはリンクされた一連のパーツと仕て表示される。

レポートパーツを表示する為のレポートの変換

先ず、Crystal Reportsに同梱されて居るサンプルのMicrosoft Accessデータベースから情報を読み込

むレポートを作成する。

注:Xtreme.mdbは Crystal Reportsと共に提供されるサンプルデータベースで有る。使用して居るバ

ージョンの Crystal Reportsに付属して居る Xtreme.mdbをコンピュータのハードディスクドライブか

ら探し出すには、ヘルプの「Xtreme サンプルデータベースの場所」を参照され度い。ODBC DSN エ

ントリからデータベースに接続する必要が有る。使用して居るバージョンの Crystal Reports でのエン

トリ名を見付けるには、「Xtremeサンプルデータベース用の ODBC DSN エントリ」を参照され度い。

Page 32: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-32-

パラメータを設定してレポートを作成する

注:此の手順は、「プロジェクトの設定」で作成されたプロジェクトに而巳有効で有る。プロジェクト

の設定には、此のプロジェクトに必要な特定の名前空間参照とコード設定が含まれる為、此の設定無し

に手順を完了する事は出来ない。従って、此の手順を始める前に先ず、「プロジェクトの設定」の手順

を実行して置く必要が有る。

1.ソリューションエクスプローラで太字のプロジェクト名を右クリックし、[追加]をポイントして

[新しい項目の追加]をクリックする。

2.[新しい項目の追加]ダイアログボックスで、[テンプレート]ビューから『Crystal レポート』と

謂う名前のテンプレートを選択する。

3.[名前]フィールドに Customers.rptと入力し、[追加]をクリックする。

注:Visual Studio.NET 2002又は 2003では、ボタン名は[開く]で有る。

4.製品の登録が未だの場合は、登録を求めるダイアログボックスが表示される。登録方法に付いては

「Crystal Reportsの登録とキーコード」を参照され度い。

5.[Crystal Reports ギャラリ]ダイアログボックスの[Crystalレポートドキュメントの新規作成]

パネルで、[レポートウィザードを使用]を選択する。

6.[エキスパートの選択]パネルで[標準]を選択し、[OK]をクリックする。

7.標準レポート作成ウィザードウィンドウの[利用可能なデータソース]パネルで、[接続の新規作

成]フォルダを展開する。

注:Crystal Reportsが Crystal Reports Developerエディションにアップグレードされて居ない

Visual Studio.NET 2002又は 2003では、[接続の新規作成]フォルダは存在しない。其の内容が

最上位に表示される。

8.開いたサブフォルダから、[ODBC(RDO)]フォルダを展開する。

9.ODBC(RDO)ウィンドウで「Xtremeサンプルデータベース用の ODBC DSNエントリ」の説明

に従って、使用して居る Crystal Reports のバージョンに合った ODBC DSN エントリを選択し、

[完了]をクリックする。

[ODBC(RDO)]フォルダが展開され、Xremeサンプルデータベースが表示される。

A.Tablesノードを展開し、Customerテーブルを選択する。

B.Customerテーブルをダブルクリックしてテーブルを[選択したテーブル]パネルに移動し、[次へ]

をクリックする。

C.Ctrlキーを押し乍ら、[国]、[顧客名]、[前年度取引高]、[地域]、及び[市]をクリックする。

D.[>]ボタンをクリックして此等のフィールドを[表示するフィールド]パネルに移動し、[次へ]

ボタンをクリックする。

E.[利用可能なフィールド]パネルの[レポートフィールド]で、次の手順を完了させる。

a.[国]を選択し、[>]記号をクリックして、フィールドを[グループ化]パネルに移動する。

b.[地域]を選択し、[>]記号をクリックして、フィールドを[グループ化]パネルに移動する。

c.[次へ]をクリックする。

国、及び、地域グループの『前年度取引高』フィールドに集計フィールドが作成される。

F.[完了]をクリックする。

Customersレポートが作成され、Visual Studioのメインウィンドウにロードされる。

G.ウィンドウの下部の[メインレポートプレビュー]をクリックする。

レポートのレベルが、先ず、国別に並べ替えられ、次に地域別に並べ替えられて、階層的に表示さ

れる。レポートをレポートパーツと仕て表示する場合、各レベルは別々に表示される。

此れで、レポートを変換してレポートパーツと仕て表示する準備が出来た。

Page 33: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-33-

レポートのバインド

「プロジェクトの設定」の指示に従って此のチュートリアルの準備をする時に、CrystalReportViewer

コントロールを Web フォームに配置した。但し、レポートパーツを表示するには

CrystalReportPartsViewer コントロールを使用する必要が有る。

此処では、Customersレポートをインスタンス化し、此れを CrystalReportPartsViewerコントロール

にバインドする。次に、前の手順で作成したレポートパーツがレポートに表示されるか何うかをテスト

する。

レポートをインスタンス化してバインドするには、次の 2つの方法が有る。

・埋め込みレポートと仕て

・埋め込みでないレポートと仕て

注:Visual Studio 2005は、Webサイトでは埋め込みでないレポート丈をサポートして居る。

以下の手順の孰れかを選択する。

・埋め込みレポートを使用する場合は、次の手順に従って、レポートを埋め込みレポートと仕てインス

タンス化する。

・埋め込みでないレポートを使用する場合は、2 番目の手順に従って、レポートを埋め込みでないレポ

ートと仕てインスタンス化する。

Customersレポートを埋め込みレポートと仕てインスタンス化してCrystalReportPartsViewerコント

ロールにバインドする

1.Webフォームを開く。

2.[ファイル]メニューの[デザイナ]をクリックする。

3.CrystalReportViewerコントロールを削除する。

4.ツールボックスで Crystal Reportsノードを開き、CrystalReportPartsViewerコントロールを探す。

5.CrystalReportPartsViewerコントロールをWebフォームにドラッグする。

6.[プロパティ]ウィンドウから、IDプロパティを以下の様に設定する。

Visual Basic Webサイトの場合は、IDプロパティにmyCrystalReportPartsViewerと設定する。

C# Webサイトの場合は、IDプロパティに crystalReportPartsViewerと設定する。

7.[表示]メニューから[コード]をクリックし、此のWebフォームの分離コードクラスを表示する。

8.変数名 customerReportで、Customersレポートのラッパークラスに新しいクラスレベルの宣言を

追加する。アクセス修飾子を privateに設定する。

Visual basic

Private customersReport As Customers

C#

private Customers customersReport;

9.ConfigureCrystalReports メソッド内で、レポートラッパークラスをインスタンス化する。

注:ConfigureCrystalReports メソッドは「プロジェクトの設定」で作成された。

Page 34: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-34-

Visual basic

customersReport = New Customers( )

C#

customersReport = new Customers( );

A.レポートインスタンス化の下に有る行で、CrystalReportPartsViewerコントロールのReportSource

プロパティに、インスタンス化したレポートクラス(変数名は customerReport)をバインドする。

Visual basic

myCrystalReportPartsViewer.ReportSource = customersReport

C#

crystalReportPartsViewer.ReportSource = customersReport;

注:コントロールを各自の Web フォームや Windows フォームに追加したので、

CrystalReportPartsViewerコントロールのインスタンスにコードでアクセス出来る。IntelliSense

が CrystalReportPartsViewer コ ン ト ロ ー ル イ ン ス タ ン ス を 認 識 し な い 場 合 は 、

CrystalReportPartsViewer コントロールがクラスレベルの宣言と仕て此の分離コードクラスに追

加されて居る事を確認する。

此れでプロジェクトをビルドして実行する事が出来る。

Customers レ ポ ー ト を 埋 め 込 み で は な い レ ポ ー ト と 仕 て イ ン ス タ ン ス 化 し て

CrystalReportPartsViewer コントロールにバインドする

1.Webフォームを開く。

2.[表示]メニューの[コード]をクリックする。

3.変数名 customersReport で、ReportDocument レポートのラッパークラスに新しいクラスレベル

の宣言を追加する。アクセス修飾子を privateに設定する。

Visual basic

Private customersReport As ReportDocument

C#

private ReportDocument customersReport;

注:ReportDocument クラスは、CrystalDecisions.CrystalReports.Engine 名前空間に含まれる。

此の名前空間には、「プロジェクトの設定」で Imports(Visual Basic)又は、using(C#)宣言を

追加した。ReportDocumentをインスタンス化して名前空間にレポートをロードする際は、レポー

トを埋め込まずに SDKを介してレポートにアクセスする。

4.「プロジェクトの設定」の手順で追加した ConfigureCrystalReportsメソッドで、ReportDocument

クラスをインスタンス化する。

Visual basic

customersReport = New ReportDocument( )

C#

customersReport = new ReportDocument( );

5.文字列変数を宣言して reportPathと謂う名前をつけ、ローカルレポートの実行時パスを代入する。

Page 35: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-35-

此のパスは、WebサイトとWindowsプロジェクトで異なる。

Webサイトでは、ローカルレポートファイルの名前は文字列パラメータと仕て Server.MapPathメ

ソッドに渡される。此れに依ってローカルレポートは、実行時にハードドライブのファイルディレ

クトリパスにマップされる。

Visual basic

Dim reportPath As String = Server.MapPath("Customers.rpt")

C#

string reportPath = Server.MapPath("Customers.rpt");

Windowsプロジェクトでは、バックスラッシュを使って Application.StartupPath プロパティをロ

ーカルレポートファイル名と連結する。此れに依って、レポートは同じディレクトリにWindows 実

行ファイルと仕てマップされる。

注:コンパイル時に、実行ファイルを含むディレクトリにレポートをコピーする。

Visual basic

Dim reportPath As String = Application.StartupPath & "¥" & "Customers.rpt"

C#

string reportPath = Application.StartupPath + "¥¥" + "Customers.rpt";

6.ReportDocumentインスタンスの Loadメソッドを呼び出し、reportPath文字列変数を渡す。

Visual basic

customersReport.Load(reportPath)

C#

customersReport.Load(reportPath);

7.次の行のレポートのロードの下で、CrystalReportPartsViewer の ReportSource プロパティを、

ReportDocumentインスタンスにバインドする。

Visual basic

myCrystalReportPartsViewer.ReportSource = customersReport

C#

crystalReportPartsViewer.ReportSource = customersReport;

埋め込みレポートのクラス、又は、埋め込みではないレポートのクラス(ReportDocument)の孰れを

インスタンス化して居るかに関わり無く、使用する変数名は同じで有る(customersReport)。此れに依

り、其の後の手順で共通のコードを使用出来る。

此れでプロジェクトをビルドして実行する事が出来る。此の時点では、市パラメータフィールドの値を

設定するコードを書き込んで居ない為、レポートのロードに失敗するはずで有る。市パラメータフィー

ルドには後で値を追加する。

Customersレポートのロードをテストする

1.[ビルド]メニューで[ソリューションのビルド]を選択する。

2.ビルドエラーが有る場合は、此処で修正する。

Page 36: 印刷 - xdomainjunko036.html.xdomain.jp/pdf/printout/crystalreport1.pdfルシート(CSS)を設定する。 SetDatabaseLogon ユーザーとパスワードを使ってログオン情報を設定する。

VS 2005資料 【電脳梁山泊 烏賊塾】

-36-

3.[デバッグ]メニューの[開始]をクリックする。

注:Visual Studio 2005でWebサイトを開発中で、デバッグを今回初めて行う場合、ダイアログ

ボックスが表示され、Web.configファイルの変更が必要で有る事が示される。[OK]ボタンをクリ

ックしてデバッグを有効にする。

CustomersレポートがWebブラウザに表示される。

4.国をクリックして地域のリストを表示する。

5.地域をクリックして、顧客名、前年度取引高、及び、市フィールドを表示する。

6.Visual Studioに戻り、[停止]ボタンをクリックして、デバッグモードを終了する。

レポートのデータのフィルタ

此処では、レポートに表示されるデータをフィルタする為に、[データコンテキスト]フィールドを設

定する方法を学習する。[データコンテキスト]設定の詳細に付いては、「レポートパーツのドリルダウ

ンの実装」を参照され度い。

レポートのデータをフィルタする

1.Crystalレポートを開く。

2.レポートの空いて居る領域を右クリックする。[レポート]を選択し、[レポートオプション]をク

リックする。

3.[データコンテキスト]フィールドに、「/国[USA]」と入力する。

4.[OK]をクリックして[レポートオプション]ダイアログを終了する。

5.[ビルド]メニューで[ソリューションのビルド]を選択する。

6.ビルドエラーが有る場合は、此処で修正する。

7.[デバッグ]メニューの[開始]をクリックする。

レポートにはUSAのレコード丈が表示される。

8.Visual Studioに戻り、[停止]ボタンをクリックして、デバッグモードを終了する。

データコンテキストの設定は、削除する事も変更する事も出来る。

纏め

此のチュートリアルでは、レポートをパーツに分割し、一連のハイパーリンクをクリックする事に依っ

て各パーツを表示する方法を学習した。ハイパーリンクに依って、全体のレポート集計グループから詳

細なレポート情報へ移動した。レポートをパーツと仕て表示する為に、レポートに

CrystalReportPartsViewer コントロールを割り当てた。