Difficulty setting ReportParameter
I am running into issues with setting the ReportParameter method. I am dynamcially setting an ObjectDataSource that is connected to a class object, and dynamically setting a ReportViewer Object. I am running into issues setting the parameters for the report dynamicallly. Here is my code:
public
partialclassProductReport : System.Web.UI.Page
{
protectedReportViewer reportViewer =newReportViewer();protectedObjectDataSource objDataSource =newObjectDataSource();protected System.Web.UI.HtmlControls.HtmlTableCell tdRptViewer =newHtmlTableCell();protectedvoid Page_Load(object sender,EventArgs e){
this.tdRptViewer.ID ="tdRptViewer";this.form1.Controls.Add(tdRptViewer);this.tdRptViewer.Focus();this.form1.Controls.Add(reportViewer);this.Form.Controls.Add(objDataSource);this.reportViewer.ProcessingMode =ProcessingMode.Local;this.reportViewer.LocalReport.DisplayName ="ShippedProduct.rdlc";this.reportViewer.LocalReport.ReportPath ="ShippedProduct.rdlc";//this.objDataSource = new ObjectDataSource("objDataSource", "GetProductShipped");this.objDataSource.ID ="objDataSource";this.objDataSource.SelectMethod ="GetProductShipped";this.objDataSource.TypeName ="Intel.JecortezSrv.DataLayer.ShippedProducts";this.objDataSource.SelectParameters.Add("spName",TypeCode.String,"ProductShipped");this.objDataSource.SelectParameters.Add("spParam",TypeCode.String,"@parameter1");this.objDataSource.SelectParameters.Add("spParamValues",TypeCode.String,"test");this.objDataSource.EnableViewState =true;this.objDataSource.Select();this.objDataSource.DataBind();this.reportViewer.LocalReport.DataSources.Add(newReportDataSource("GetProductShipped", objDataSource.ID));this.reportViewer.LocalReport.SetParameters(newReportParameter("spName","ProductShipped",false));this.reportViewer.LocalReport.SetParameters(newReportParameter("spParam","@parameter1",false));this.reportViewer.LocalReport.SetParameters(newReportParameter("spParamValues","test",false));this.reportViewer.LocalReport.Refresh();}
-
The "this.reportViewer.LocalReport.SetParameters(new ReportParameter(parm, parm, parm))" lines are returning the following error:
>>>Error 1 c:\Documents and Settings\jecortez.amr.000\My Documents\Visual Studio 2005\WebSites\SSRSWebConsole\ProductReport.aspx.cs(41): error CS1502: The best overloaded method match for 'Microsoft.Reporting.WebForms.Report.SetParameters(Microsoft.Reporting.WebForms.ReportParameter[])' has some invalid arguments<<<
What is the issue here? Thanks
[7522 byte] By [
Paytheon] at [2007-12-16]
The method is expecting an array of parameters and you are giving it a single parameter. Try something like this instead:
ReportParameter[] params = new ReportParameter[3];
params[0] = new ReportParameter("spName", "ProductShipped", false);
params[1] = new ReportParameter("spParam", "@parameter1", false);
params[2] = new ReportParameter("spParamValues", "test", false);
this.reportViewer.LocalReport.SetParameters(params);
I usually work in C#, but I think the change below should fix it:
Dim Params(3) As ReportParameter
Params(0) = New ReportParameter("MainTitle", "New Main Title")
Params(1) = New ReportParameter("X-Axis", "New X Axis")
Params(2) = New ReportParameter("Y-Axis", "New Y Axis")
'Me.ReportViewer2.LocalReport.SetParameters(New ReportParameter(Params))
Me.ReportViewer2.LocalReport.SetParameters(Params)
Hope that helps.
Hi KC
Try this it actually works..
ReportViewer1.ServerReport.ReportServerCredentials = New MyReportServerCredentials
ReportViewer1.ServerReport.ReportServerUrl = New Uri(strReportServer)
ReportViewer1.ServerReport.ReportPath = strPATH
Dim paramlist As New Generic.List(Of ReportParameter)
paramlist.Add(New ReportParameter(strParmName1, strParmValue1, False))
paramlist.Add(New ReportParameter(strParmName2, strParmValue2, False))
ReportViewer1.ServerReport.SetParameters(paramlist)
ReportViewer1.ServerReport.Refresh()
Regards,
David
I got an error "Too many arguments to Public Sub New()" on
Code Snippet
ReportViewer1.ServerReport.SetParameters(New ReportParameter("intProjectID", 119))
I also tried this and got error on multiple parameters starting the second parameter. It works on single parameter.
Code Snippet
Dim param(2) As Microsoft.Reporting.WebForms.ReportParameter
param(0) = New Microsoft.Reporting.WebForms.ReportParameter("ProjectID", Me.cboProject.SelectedValue)
param(1) = New Microsoft.Reporting.WebForms.ReportParameter("RunBy", Session("strEmployeeName"))
Me.ReportViewer1.ServerReport.SetParameters(param)
What did I miss? Thanks.
DanYeung