Question

I have a web app and a winforms app - both of them display reports via the standard web/winforms ReportViewer controls. (Using VS2010 / .Net 4.0 btw).

I also have a shared library that returns the ReportParameter objects for the reports being generated. I ran into little issue with the ReportParameter's being returned though:

The Winforms ReportViewer uses ReportParameter from Microsoft.Reporting.WinForms namespace. The WebForms ReportViewer uses ReportParameter from Microsoft.Reporting.WebForms namespace.

Is there a generic ReportParameter class I can use to share reportparameters from web vs winforms? Or is there a built-in utility to easily translate between the two?

Was it helpful?

Solution

I know it is old, but I had the same question today so figured I would provide an answer.

I couldn't find anything definitive, so I pulled out ye-old-reflector... and I chose to use Microsoft.ReportViewer.WebForms because it referenced a subset of the assmblies referenced by Microsoft.ReportViewer.WinForms.

Specifically...

WebForms referenced:

  • Microsoft.ReportViewer.Common
  • mscorlib
  • System
  • System.Configuration (Not Referenced by WinForms)
  • System.Data
  • System.Drawing
  • System.Web
  • System.Web.Services
  • System.XML

WinForms referenced:

  • Microsoft.ReportViewer.Common
  • mscorlib
  • System
  • System.Data
  • System.Drawing
  • System.Web
  • System.Web.Services
  • System.Windows.Forms (Not referenced by WebForms)
  • System.XML

If I am going to be pulling in an assembly reference to System.Web regardless, I might as well avoid the System.Windows.Forms reference impo.

EDIT Also, as for passing around ReportParameter across references, you will pretty much have to re-map them accordingly. Either via wrapper, or some Mapping extension method would do the trick.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top