Showing posts with label reportingservice. Show all posts
Showing posts with label reportingservice. Show all posts

Sunday, February 19, 2012

How to send parameters to report when executing ReportingService.Render

I'm trying to figure out how you send/set the report variables when using the ReportingService.Render method.

I can get the ReportParameters array using GetReportParameters but can't seem to find a way to populate the ParameterValue array that is passed as a variable in the Render method. I've tried creating an ArrayList comprised of ParameterValue objects (non-array), adding them to the ArrayList, and trying to convert that to a ParameterValue array. The example code I found is in VB.NET and looks like this:

reportParametersArray = rs.GetReportParameters(reportPath, Nothing, True, _
reportParameterValuesArrayList.ToArray(GetType(ParameterValue)), Nothing)

I tried to do the same thing in C#:

rpReportParams = rsReports.GetReportParameters(sReportPath, null, true, arrayListParams.ToArray(System.Type.GetType(ParameterValue)), dscCredentials);

The compile error is :
'ReportService.ParameterValue' denotes a 'class' where a 'variable' was expected

Putting quotes around ParameterValue returns the following error:
Argument '4': cannot convert from 'System.Array' to 'ParameterValue[]'
Anyone had success populating report parameters or have a suggestion?

Thanks,

O.

If arrayListParams is an ArrayList that contains ParameterValue objects, try this in C#

(ParameterValue[])arrayListParams.ToArray(typeof(ParameterValue))