質問

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

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

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

ドロップダウンを介してレポートをフィルタリングする必要があるので、考慮すべき側面もあります。すでにWPFでReportViewerを使用している人がいれば、最良のアプローチについてのフィードバックをお願いします。

役に立ちましたか?

解決

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

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

他のヒント

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

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

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

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

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

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

注意してください、
マーティン

同じアプリケーションでWPF-WindowsとWindows-Form-Windowsの両方を使用できることに注意してください。

したがって、ShowDialogを使用してWPFウィンドウから開く別のWindowsフォームウィンドウにReportViewerを配置すると、WindowsFormsHostの使用を回避できます。

その後、デザインタイムでもReportViewerを使用できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top