Using MS ReportViewer in WPF

I'm about to start using the MS ReportViewer in a WPF application by placing the ReportViewer in a WindowsFormsHost.

Is this the correct approach? What is the best way of designing the reports as you cannot use the ReportViewer at design time in a WindowsFormsHost.

Is it best to create an RDL report in SQL Server and then convert it to an RDLC or maybe to create a new Winforms app to create an RDLC file in a WinForms framework and then copy it to the WPF app.

I will need to filter the reports via dropdowns so there's that aspect to consider too. If anyone out there is already using ReportViewer in WPF I would appreciate some feedback on the best approach.....Many thanks.

Answers


We've definitely had success just using the WindowsFormsHost. I haven't been involved in creating the RDLC files themselves, but I believe they were designed (as you say) in a WinForms project and then copied across.

Note that if you don't need local reports you can use a WPF Frame control and point it at the URL of the server-based report (it renders it like a web browser would). This works really well for us too.


Yes, that works, I am using the WindowsFormsHost in a wpf project to wrap the ReportViewer.

In the ViewModel I am creating the WindowsFormsHost and the ReportViewer:

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

and in the View I am using a ContentPresenter to display it, by binding to the Property that holds the WindowsFormsHost.

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

We're using the Business Intelligence Studio (which is an Visual Studio 2008 with templates for editing reports) for report creation. http://msdn.microsoft.com/en-us/library/ms173767.aspx

Take care, Martin


Please note that you can use both WPF-Windows and Windows-Form-Windows in the same application.

So you can avoid using WindowsFormsHost if you put the ReportViewer in a seperate Windows-Forms-Window that you open from your WPF-Window with ShowDialog.

Then you can use the ReportViewer also at design time.


Need Your Help

PipeTransmissionMode.Message: How do .NET named pipes distinguish between messages?

.net named-pipes

Can somebody clarify the meaning of PipeTransmissionMode.Message in .NET?

Access the ActionBar from within a Fragment

java android android-fragments android-support-library

How do you access the ActionBar from within a Fragment (android.support.v4.app.Fragment). I am using the Android Support Library v4 and v7. I'm not using the Sherlock library's.