SSRSDocumentSource for WinForms

SSRSDocumentSource for
WinForms
2015.01.15 更新
グレープシティ株式会社
SSRSDocumentSource for WinForms
目次
はじめに
コンポーネントをプロジェクトに組み込む方法
コンポーネントのランタイムファイル
クイックスタート
2-3
3
4-6
資格情報をコードで設定する
7
SSRSドキュメントの場所をコードで設定する
8
ドキュメントの状態およびページ数を表示する
コントロールの主なプロパティとメソッド
主なメソッド
主なプロパティ
1
2
9-10
11
11
11-12
Copyright © GrapeCity inc. All rights reserved. SSRSDocumentSource for WinForms
はじめに
ComponentOne SSRSDocumentSource for WinFormsを使用すると、ページ区切り付き SSRS レポートを生成
し、C1PrintPreviewControl にロードして、Adobe PDF、Microsoft Word、Excel などのさまざまな形式に表示およびエクス
ポートできます。
現在のバージョンの C1SSRSDocumentSource は、SSRS レポートのページ区切り付きビューだけをサポートします。
コンポーネントをプロジェクトに組み込む方法
コンポーネントの組み込み
Visual Studio では、ツールボックスにコンポーネントを追加しただけでは、プロジェクトにコンポーネントを追加したことにはなり
ません。プロジェクトの参照設定へ追加された時点でコンポーネントが組み込まれます。
以下のいずれかの操作を行うとプロジェクトへコンポーネントが組み込まれます。
1. フォームにコンポーネントを配置する
2. ソリューションエクスプローラ上で参照の追加を行う
プロジェクトに組み込まれているコンポーネントの一覧は、ソリューションエクスプローラで確認できます。また、各コンポーネント
が使用している DLL もソリューションエクスプローラに登録される場合があります。詳細については、Visual Studio の製品ヘル
プを参照してください。
本製品で使用しているコンポーネントの一覧を以下に示します。
ファイル
内容
C1.Win.4.dll
本体アセンブリ
C1.Win.Document.4.dll
本体アセンブリ
C1.Win.C1Ssrs.4.dll
本体アセンブリ
C1.Win.C1Document.4.Design.dll
デザイナアセンブリ
フォームにコンポーネントを配置する方法
以下に、C1SSRSDcoumentSource コントロールをツールボックスに追加し、フォームに配置する方法を示します。これにより、
コンポーネントがプロジェクトに組み込まれます。
配置手順
1. [ツール]メニューから[ツールボックス アイテムの選択]を選択します。
2. [ツールボックス アイテムの選択]ダイアログの「.NET Framework コンポーネント」タブを選択します。
3. 使用するコンポーネントのチェックボックスを ON にして〈OK〉ボタンをクリックしてください。ツールボックスに指定したコン
トロールのアイコンが表示されます。
2
Copyright © GrapeCity inc. All rights reserved. SSRSDocumentSource for WinForms
4. ツールボックスから指定したコントロールのアイコンを選択してフォームに配置します。ソリューションエクスプローラの参
照設定に指定したコントロールの名前空間が追加されます。
コンポーネントのランタイムファイル
SSRSDocumentSource for WinForms のランタイムファイルは、 C:\Program Files\ComponentOne\Studio for
WinForms\bin\ フォルダにインストールされる次のファイルです。
ファイル名
説明
C1.Win.4.dll
本体アセンブリ
C1.Win.C1Document.4.dll
本体アセンブリ
C1.Win.C1Ssrs.4.dll
本体アセンブリ
注意:
注意:本製品に含まれているファイルのうち、上記以外のファイルは配布できません。
3
Copyright © GrapeCity inc. All rights reserved. SSRSDocumentSource for WinForms
クイックスタート
SsrsDocumentSource を使用すると、表示される SSRS レポートの場所または名前を指定できます。さら
に、C1PrintPreviewControl からページ区切り付き SSRS レポートを表示できます。
これは、フォームに追加できるビジュアルコンポーネントではありませんが、コンポーネントトレイには表示されます。
メモ
メモ:このトピックを開始するには、あらかじめ SSRS レポートサーバーへのアクセス権を確保し、そのサーバーに1つ以
上のレポートが存在する必要があります。
C1PrintPreviewControl を使用して SSRS レポートをプレビューまたはエクスポートするには、.NET Framework 4.0 以上を
使用して新しい WinForms アプリケーションを作成し、次の手順を実行します。
デザイナの場合
1. ツールボックスから、C1SSRSDocumentSource コンポーネントをフォームに追加します。 コンポーネントがコンポーネ
ントトレイに表示されます。
ツールボックスでこのコンポーネントが見つからない場合は、右クリックし、[アイテムの選択]
[アイテムの選択]を選択しま
す。[ツールボックスアイテムの選択]
[ツールボックスアイテムの選択]ダイアログボックスが表示されます。C1.Win.C1Document.dll でコン
ポーネントを見つけ、ツールボックスに追加します。
2. C1PrintPreviewControl をフォームに追加し、必要に応じてその高さと幅を設定します。
ツールボックスでこのコンポーネントが見つからない場合は、右クリックし、[アイテムの選択]
[アイテムの選択]を選択しま
す。[ツールボックスアイテムの選択]
[ツールボックスアイテムの選択]ダイアログボックスが表示されます。C1.Win.C1Report.dllでコンポーネン
トを見つけ、ツールボックスに追加します。
3. C1SSRSDocumentSource コンポーネントをクリックし、スマートタグをクリックして[[C1SSRSDocumentSource のタス
ク]
ク]メニューを開きます。
4. C1PrintPreviewControl の横にあるチェックボックスをオンにします。これにより、C1SSRSDocumentSource コンポー
ネントが C1PrintPreviewControl の Document プロパティに割り当てられます。
5. C1SSRSDocumentSource を右クリックし、[プロパティ]
[プロパティ]を選択して[プロパティ]ウィンドウを開きます。
6. DocumentLocation プロパティの横にあるドロップダウン矢印をクリックします。
7. 次のダイアログで、SSRS サーバーのアドレスとレポートの完全パスを指定し、[[OK]]をクリックします。
8. ConnectionOptions プロパティグループを展開します。
9. Credential プロパティの横にあるドロップダウン矢印をクリックします。
10. 次のダイアログで、ユーザー名、パスワード、およびドメインを指定し、[[OK]]をクリックします。
4
Copyright © GrapeCity inc. All rights reserved. SSRSDocumentSource for WinForms
メモ
メモ:次の DLL がプロジェクト参照に追加されていることを確認します。
C1.Win.C1Document.dll
C1.Win.dll
C1.Win.C1Ssrs.dll
C1.Win.C1Report.dll
C1.C1Report.dll
コードでも、ドキュメントの場所とネットワークの資格情報を設定できます。詳細については、「コードでの
コードでの DocumentLocation
の設定
の設定」と「コードでの
コードでの Credentials の設定
の設定」を参照してください。
ここまでの成果
指定された SSRS レポートがプレビューコントロールに表示されるかどうかを決定するパラメータを設定するように求められる
場合があります。
5
Copyright © GrapeCity inc. All rights reserved. SSRSDocumentSource for WinForms
レポートは、サポートされたさまざまな外部形式にエクスポートできます。
6
Copyright © GrapeCity inc. All rights reserved. SSRSDocumentSource for WinForms
資格情報をコードで設定する
SSRS レポートには、ユーザー名とパスワードを指定してアクセスできます。そのために、C1SSRSDocumentSource
の SecurityError イベントで、Credential プロパティを設定します。SSRS サーバーへのアクセスで、資格情報に不備があれ
ば拒否されてこのイベントが発生します。その場合は、必要な資格情報を指定して操作をやり直すことができます。
デザイナの場合
1. C1SSRSDocumentSource の[イベント]
[イベント]ウィンドウを開きます。
2. SecurityError イベントをダブルクリックします。コードでは、そのイベント用に空のハンドラが作成されます。
コードの場合
1. コードビューで、c1SSRSDocumentSource1_SecurityError イベントハンドラを以下に示すように変更します。
C#
private void c1SSRSDocumentSource1_SecurityError(object sender,
C1.Win.C1Document.SecurityErrorEventArgs e)
{
var ds = (C1.Win.C1Document.C1SSRSDocumentSource)sender;
ds.Credential = new System.Net.NetworkCredential("myUserId", "myPassword");
e.Retry = true;
}
VB
Private Sub C1SSRSDocumentSource1_SecurityError(sender As Object, e As
C1.Win.C1Document.SecurityErrorEventArgs) Handles
C1SSRSDocumentSource1.SecurityError
Dim ds = DirectCast(sender, C1.Win.C1Document.C1SSRSDocumentSource)
ds.Credential = New System.Net.NetworkCredential("myUserId",
"myPassword")
e.Retry = True
End Sub
上のコードでは、"myUserId" と "myPassword" を SSRS レポートサーバーの有効な資格情報に置き換えます。フォー
ムをロードするとき、C1SSRSDocumentSource コンポーネントは、指定されたレポートにアクセスしようとします。
メモ
メモ:不正な資格情報を使用すると、セキュリティエラーがスローされます。その場合は、有効な情報資格を備え
たハンドラを指定して、操作をやり直す必要があります。
2. アプリケーションを実行します。
7
Copyright © GrapeCity inc. All rights reserved. SSRSDocumentSource for WinForms
SSRSドキュメントの場所をコードで設定する
ドキュメントの場所をコードで設定する
Form_Load イベントに使用されているコードで SSRS ドキュメントの場所を設定できます。デザイナを使用してドキュメントの場
所を設定する方法については、「SSRSDocumentSource クイックスタート
クイックスタート」を参照してください。
コードの場合
C#
c1SSRSDocumentSource1.DocumentLocation = new
C1.Win.C1Document.SSRSReportLocation("http://ssrs.abc.com/ReportServer", "/Adventure
Works/Sales");
VB
c1SSRSDocumentSource1.DocumentLocation = New
C1.Win.C1Document.SSRSReportLocation("http://ssrs.abc.com/ReportServer", "/Adventure
Works/Sales")
8
Copyright © GrapeCity inc. All rights reserved. SSRSDocumentSource for WinForms
ドキュメントの状態およびページ数を表示する
このトピックでは、C1SsrsDocumentSource コンポーネントの PageCount プロパティと State プロパティを使用して、ドキュメン
トソースの状態および生成されたページ数を表示する方法について説明します。クイックスタート
クイックスタートに示すアプリケーションを作
成し、次の手順を実行します。
デザイナの場合
1.
2.
3.
4.
5.
2つのラベルをフォームに配置します。
最初のラベルの Name を tbReport に設定します。
2番目のラベルの Name を tbState に設定します。
最初のラベルの Text プロパティを Report: None に設定します。このラベルには、レポートの場所が表示されます。
2番目のラベルの Text プロパティを State: Unknown に設定します。このラベルには、レポートの状態と生成される
ページ数が表示されます。
コードの場合
次のコードを Form_Load イベントに追加すると、レポートの場所、状態、およびページ数をラベルに取り込むことができます。
C#
SSRSReportLocation rl = c1SSRSDocumentSource1.DocumentLocation as SSRSReportLocation;
if (rl != null)
tbReport.Text = C1.Win.C1Ssrs.ReportSession.Combine(rl.ReportServer,
rl.ReportPath);
else
tbReport.Text = "None";
switch (c1SSRSDocumentSource1.State)
{
case C1DocumentSourceState.Generated:
case C1DocumentSourceState.GeneratedWithErrors:
case C1DocumentSourceState.Generating:
tbState.Text = string.Format("{0}, Pages: {1}", c1SSRSDocumentSource1.State,
c1SSRSDocumentSource1.PageCount);
break;
default:
tbState.Text = c1SSRSDocumentSource1.State.ToString();
break;
}
VB
Dim rl As SSRSReportLocation = TryCast(c1SSRSDocumentSource1.DocumentLocation,
SSRSReportLocation)
If rl IsNot Nothing Then
tbReport.Text = C1.Win.C1Ssrs.ReportSession.Combine(rl.ReportServer,
rl.ReportPath)
Else
tbReport.Text = "None"
End If
Select Case c1SSRSDocumentSource1.State
Case C1DocumentSourceState.Generated,
C1DocumentSourceState.GeneratedWithErrors, C1DocumentSourceState.Generating
tbState.Text = String.Format("{0}, Pages: {1}",
9
Copyright © GrapeCity inc. All rights reserved. SSRSDocumentSource for WinForms
c1SSRSDocumentSource1.State, c1SSRSDocumentSource1.PageCount)
Exit Select
Case Else
tbState.Text = c1SSRSDocumentSource1.State.ToString()
Exit Select
End Select
ここまでの成果
プロジェクトを実行すると、フォームに配置したラベルに、レポートの場所、状態、および生成されたページ数が表示されます。
10
Copyright © GrapeCity inc. All rights reserved. SSRSDocumentSource for WinForms
コントロールの主なプロパティとメソッド
この後のページでは、C1SSRSDocumentSource コントロールの重要なプロパティとメソッドについて説明します。
主なメソッド
C1SSRSDocumentSource のメソッドのうち、レポートでクエリーの生成と実行に使用されるものの多くには、同期と非同期の2
つのバージョンがあります。
次に例を示します。
C1SSRSDocumentSource.Open - メソッドの同期、ブロックバージョン。
C1SSRSDocumentSource.OpenAsync - 同じメソッドの非同期、非ブロックバージョン。
重要な C1SSRSDocumentSource メソッドのいくつかを次に示します。
プロパティ
説明
Open
レポートを開きます。レポートの生成中を除き、このメソッドは、いつでも呼び出すことがで
きます。
OpenAsync
Generate
GenerateAsync
ApplyParameterValues
レポートを生成します。このメソッドを呼び出すことができるのは、State が Opened、
Generated、または GeneratedWithErrors のいずれかの場合です。
Parameters で指定されているパラメータ値を現在の値として適用します。
ApplyParameterValuesAsync
CheckParameterValues
現在のパラメータ値を検証し、値が有効な場合は、有効な値のリストを更新します。
CheckParameterValuesAsync
GetPage
指定されたインデックスを持つページを取得します。
GetPageAsync
Export
サポートされる外部形式の1つ(PDF など)にレポートをエクスポートします。
ExportAsync
Clear
生成されたレポートをクリアします。
主なプロパティ
重要な C1SSRSDocumentSource プロパティのいくつかを次に示します。
プロパティ
説明
DocumentLocation
SSRS レポートの場所を取得または設定します。これには、サーバーのアドレス
(http://ssrs.abc.com/ReportServer など)とレポートのパス(/Adventure Works/Sales
など)が含まれます。
State
ドキュメントソースの現在の状態を表す値を取得します。状態が変わるのは、ドキュメ
ントソースを開くとき、レポートが何かを生成するときなどです。取り得る状態のリストに
ついては、「C1DocumentSourceState 列挙
列挙」を参照してください。
PageCount
既に生成されているページ数を取得します。
11
Copyright © GrapeCity inc. All rights reserved. SSRSDocumentSource for WinForms
HasParameters
何らかのパラメータが指定されているかどうかを示す値を取得します。
Parameters
コンテンツの生成に使用されるパラメータのコレクションを取得します。このコレクション
は、Open() メソッドで初期化されます。実際にレポートのパラメータとして使用するに
は、このコレクションで指定されている値に対して、ApplyParameterValues() メソッドを
呼び出す必要があります。
PageLayout
ページ区切り付きドキュメントを生成する際に使用するページレイアウトを指定する
PageLayout オブジェクトを取得または設定します。SSRS レポートでは、PageHeader、
PageFooter、Watermark の各 PageLayout プロパティは無視されます。
ConnectionOptions
SSRS に接続するときに使用されるオプションを含む ConnectionOptions オブジェクト
を取得します。
Credential
SSRS 接続で使用される資格情報を定義する NetworkCredential オブジェクトを取得
または設定します。これは、ConnectionOptions.Credential のショートカットです。
Dirty
現在のコンテンツがダーティで、DocumentLocation、Paginated などの現在の値に対
応しないかどうかを示す値を取得します。
AsyncMethodsUseAwaitPattern 現在のドキュメントソースの非同期メソッドを呼び出す際に、呼び出し元コードが
async/await パターンを使用することを前提とするかどうかを示す値を取得または設定
します。このプロパティが true の場合、*Completed イベント(OpenCompleted、
GenerateCompleted など)は発生しません。
IsCurrentActionCancellable
12
現在のアクションをキャンセルできるかどうかを示す値を取得します。
Copyright © GrapeCity inc. All rights reserved.