32

ReportViewerをWindowsFormsHostに配置して、WPFアプリケーションでMSReportViewerの使用を開始しようとしています。

これは正しいアプローチですか?WindowsFormsHostで設計時にReportViewerを使用できないため、レポートを設計するための最良の方法は何ですか。

SQL ServerでRDLレポートを作成してからRDLCに変換するのが最善ですか、それとも新しいWinformsアプリを作成してWinFormsフレームワークでRDLCファイルを作成してからWPFアプリにコピーするのが最善ですか。

ドロップダウンを使用してレポートをフィルタリングする必要があるため、その側面も考慮する必要があります。誰かがすでにWPFでReportViewerを使用している場合は、最善のアプローチに関するフィードバックをいただければ幸いです。

4

3 に答える 3

26

はい、動作します。wpf プロジェクトで WindowsFormsHost を使用して ReportViewer をラップしています。

ViewModel では、WindowsFormsHost と ReportViewer を作成しています。

WindowsFormsHost windowsFormsHost = new WindowsFormsHost();
reportViewer = new ReportViewer();
windowsFormsHost.Child = reportViewer;
this.Viewer = windowsFormsHost

ビューでは、WindowsFormsHost を保持するプロパティにバインドすることにより、ContentPresenter を使用して表示しています。

 <ContentPresenter Content="{Binding Viewer}" ...

レポートの作成には Business Intelligence Studio (レポートを編集するためのテンプレートを備えた Visual Studio 2008) を使用しています。http://msdn.microsoft.com/en-us/library/ms173767.aspx

気をつけて、
マーティン

于 2010-02-18T18:47:28.343 に答える
24

WindowsFormsHost を使用するだけで確実に成功しました。私は RDLC ファイル自体の作成には関与していませんが、(あなたが言うように) WinForms プロジェクトで設計され、コピーされたものだと思います。

ローカル レポートが必要ない場合は、WPF フレーム コントロールを使用して、サーバー ベースのレポートの URL を指定できます (Web ブラウザーのようにレンダリングされます)。これは私たちにとっても非常にうまく機能します。

于 2009-05-08T00:17:07.080 に答える