SSRSDocumentSource for WinForms 2016.01.20 更新 グレープシティ株式会社 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 はじめに SSRSDocumentSource for WinFormsを使用すると、ページ区切り付き SSRS レポートを生成し、C1PrintPreviewControl にロードして、Adobe PDF、Microsoft Word、Excel などのさまざまな形式に表示およびエクスポートできます。 コンポーネントをプロジェクトに組み込む方法 コンポーネントの組み込み 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. C1PrintPreviewControl を右クリックして使用し、[プロパティ] [プロパティ]を選択して[プロパティ]ウィンドウを開きます。 4. SsrsPaginated プロパティを「True」に設定してページ区切り付きレポートを表示できます。このプロパティのデフォルト 値は「False」です。 5. C1SSRSDocumentSource コンポーネントをクリックし、スマートタグをクリックして[[C1SSRSDocumentSource のタス ク] ク]メニューを開きます。 6. C1PrintPreviewControl の横にあるチェックボックスをオンにします。これにより、C1SSRSDocumentSource コンポー ネントが C1PrintPreviewControl の Document プロパティに割り当てられます。 7. C1SSRSDocumentSource を右クリックし、[プロパティ] [プロパティ]を選択して[プロパティ]ウィンドウを開きます。 8. DocumentLocation プロパティの横にあるドロップダウン矢印をクリックします。 9. 次のダイアログで、SSRS サーバーのアドレスとレポートの完全パスを指定し、[[OK]]をクリックします。 10. ConnectionOptions プロパティグループを展開します。 11. Credential プロパティの横にあるドロップダウン矢印をクリックします。 12. 次のダイアログで、ユーザー名、パスワード、およびドメインを指定し、[[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 C1.C1Zip.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 イベントハンドラを以下に示すように変更します。 Visual Basic コードの書き方 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 C# コードの書き方 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; } 上のコードでは、"myUserId" と "myPassword" を SSRS レポートサーバーの有効な資格情報に置き換えます。フォー ムをロードするとき、C1SSRSDocumentSource コンポーネントは、指定されたレポートにアクセスしようとします。 メモ メモ:不正な資格情報を使用すると、セキュリティエラーがスローされます。その場合は、有効な情報資格を備え たハンドラを指定して、操作をやり直す必要があります。 2. アプリケーションを実行します。 7 Copyright © GrapeCity inc. All rights reserved. SSRSDocumentSource for WinForms SSRSドキュメントの場所をコードで設定する ドキュメントの場所をコードで設定する Form_Load イベントに使用されているコードで SSRS ドキュメントの場所を設定できます。デザイナを使用してドキュメントの場 所を設定する方法については、「SSRSDocumentSource クイックスタート」を参照してください。 コードの場合 Visual Basic コードの書き方 VB c1SSRSDocumentSource1.DocumentLocation = New C1.Win.C1Document.SSRSReportLocation("http://ssrs.abc.com/ReportServer", "/Adventure Works/Sales") C# コードの書き方 C# 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 イベントに追加すると、レポートの場所、状態、およびページ数をラベルに取り込むことができます。 Visual Basic コードの書き方 VB Dim rl As C1.Win.C1Document.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.BusyState Case C1DocumentSourceBusyState.Exporting, C1DocumentSourceBusyState.Generating, C1DocumentSourceBusyState.Ready, C1DocumentSourceBusyState.Printing tbState.Text = String.Format("{0}, Pages: {1}", C1SSRSDocumentSource1.BusyState, C1SSRSDocumentSource1.PageCount) Exit Select Case Else tbState.Text = C1SSRSDocumentSource1.BusyState.ToString() Exit Select End Select C# コードの書き方 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.BusyState) { case C1DocumentSourceBusyState.Generating: 9 Copyright © GrapeCity inc. All rights reserved. SSRSDocumentSource for WinForms case C1DocumentSourceBusyState.Ready: case C1DocumentSourceBusyState.Exporting: case C1DocumentSourceBusyState.Printing: tbState.Text = string.Format("{0}, Pages: {1}", c1SSRSDocumentSource1.BusyState, c1SSRSDocumentSource1.PageCount); break; default: tbState.Text = c1SSRSDocumentSource1.BusyState.ToString(); break; } ここまでの成果 プロジェクトを実行すると、フォームに配置したラベルに、レポートの場所、状態、および生成されたページ数が表示されます。 10 Copyright © GrapeCity inc. All rights reserved. SSRSDocumentSource for WinForms コントロールの主なプロパティとメソッド この後のページでは、C1SSRSDocumentSource コントロールの重要なプロパティとメソッドについて説明します。 主なメソッド C1SSRSDocumentSource のメソッドのうち、レポートでクエリーの生成と実行に使用されるものの多くには、同期と非同期の2 つのバージョンがあります。 次に例を示します。 C1SSRSDocumentSource.Open - メソッドの同期、ブロックバージョン。 C1SSRSDocumentSource.OpenAsync - 同じメソッドの非同期、非ブロックバージョン。 重要な C1SSRSDocumentSource メソッドのいくつかを次に示します。 プロパティ 説明 Generate レポートを生成します。このメソッドを呼び出すことができるのは、State が Opened、 Generated、または GeneratedWithErrors のいずれかの場合です。 GenerateAsync ValidateParameters 現在のパラメータ値を検証し、値が有効な場合は、有効な値のリストを更新します。 ValidateParametersAsync 注意:パラメータ値は、レポートの生成が開始する時自動的適用されます。 Export サポートされる外部形式の1つ(PDF など)にレポートをエクスポートします。 ExportAsync Clear 生成されたレポートをクリアします。 主なプロパティ 重要な C1SSRSDocumentSource プロパティのいくつかを次に示します。 プロパティ 説明 DocumentLocation SSRS レポートの場所を取得または設定します。これには、サーバーのアドレス (http://ssrs.abc.com/ReportServer など)とレポートのパス(/Adventure Works/Sales など)が含まれます。 BusyState ドキュメントソースの現在の多忙状態を表す値を取得します。状態が変わるのは、ド キュメントソースを開くとき、レポートが何かを生成するときなどです。取り得る多忙状 態のリストについては、「C1DocumentSourceState 列挙」を参照してください。 IsBusy 現在のドキュメントソースの状態が多忙かどうかを示す値を取得します。 IsDisposed 現在のドキュメントソースオブジェクトが破棄されたかどうかを示す値を取得します PageCount 既に生成されているページ数を取得します。 HasParameters 何らかのパラメータが指定されているかどうかを示す値を取得します。 Parameters コンテンツの生成に使用されるパラメータのコレクションを取得します。このコレクション は、Open() メソッドで初期化されます。実際にレポートのパラメータとして使用するに は、このコレクションで指定されている値に対して、ApplyParameterValues() メソッドを 呼び出す必要があります。 11 Copyright © GrapeCity inc. All rights reserved. SSRSDocumentSource for WinForms 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.
© Copyright 2024 ExpyDoc