Reputation: 71956
Does anyone know of a Reporting Engine for WPF? Most of the ones I could find are still for WinForms.
I'm happy enough using a WinForms one in WPF with a WinForms host so long as the tool has a UserControl that can be embedded in a window.
Also, I'm not using a database and all my data is in XML so the Reporting Engine needs to be able to handle that.
Any suggestions?
Upvotes: 9
Views: 5273
Reputation: 6342
I have released this, its open source and just takes any usercontrol you can create in WPF so its pretty flexible.
https://wpfreportingengine.codeplex.com/
Upvotes: 0
Reputation: 1
also the following report engine could be useful too. http://www.eggheadcafe.com/tutorials/aspnet/22ac97f3-4a3d-4fee-a411-e456f77f6a90/wpf-report-engine-part-3.aspx
Upvotes: 0
Reputation: 531
There is an open source .NET Reporting Engine for WPF. It supports headers and footers, DataTable binding, barcode generation and XPS creation. Not sure about XML binding though.
Upvotes: 2
Reputation:
ComponentOne Reports can handle non database report sources and it is WPF based. I tried it, and it seems quite decent
Upvotes: 1
Reputation: 1187
Perhaps you can do the reporting in a FixedDocument of FlowDocument? I had the same issue, and in my situation (printing of a 1 page invoice), using a FixedDocument was an elegant and easy solution... (and inexpensive since i didn't need to buy a 3rd party reporting suite...)
Upvotes: 6
Reputation: 71956
We've ended up going with Telerik, but as a WinForms solution embedded in WPF. There are no WPF report viewers that can handle non-database report sources as of Jan 2009.
There seems to be a hole in the marketplace.
Upvotes: 3
Reputation: 11850
Here where I work, we use Stimulsoft Reports.Net. It can bind to a lot of things (including XML), and it can export to XPS, which you can then show in WPF using a DocumentViewer, or, if you're ambitious, you can rip open the XPS document using the XPS API, take the Glyphs and Paths out of every FixedPage, throw them on a Canvas, and display it in your app.
Upvotes: 2