mmtcunningham1
asked on
Error trying to generate a report with parameters
I have created a report that contains parameters. I set it up so that the parameters would be hidden. I am trying to run this report and have it displayed in a report viewer on an asp page that I have. I basically created a page that will accept the parameters and then click a button to generate the report based on the parameters the user enters. Some of the parameters will be null at times.
I am running the program and I get a message. Can anyone please tell me what my problem is?
The message is: Object reference not set to an instance of an object.
Here's the code too:
Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
setParams()
ReportViewer1.ProcessingMo de = Microsoft.Reporting.WebFor ms.Process ingMode.Re mote
ReportViewer1.ServerReport .ReportSer verUrl = New System.Uri("http://srmha-96648582/ReportServer")
ReportViewer1.ServerReport .ReportPat h = "/Report Project6/CCD"
(The message occurs on this next line)
RptParameters(0) = New Microsoft.Reporting.WebFor ms.ReportP arameter(" user", txtUserName1.Text)
RptParameters(1) = New Microsoft.Reporting.WebFor ms.ReportP arameter(" keyword", txtKeyWord.Text)
RptParameters(2) = New Microsoft.Reporting.WebFor ms.ReportP arameter(" userlastna me", userLastName)
RptParameters(3) = New Microsoft.Reporting.WebFor ms.ReportP arameter(" userfirstn ame", userFirstName)
RptParameters(4) = New Microsoft.Reporting.WebFor ms.ReportP arameter(" custlastna me", custLastName)
RptParameters(5) = New Microsoft.Reporting.WebFor ms.ReportP arameter(" custfirstn ame", custFirstName)
RptParameters(6) = New Microsoft.Reporting.WebFor ms.ReportP arameter(" startdate" , txtStartDate.Text)
RptParameters(7) = New Microsoft.Reporting.WebFor ms.ReportP arameter(" enddate", txtEndDate.Text)
ReportViewer1.ServerReport .SetParame ters(RptPa rameters)
ReportViewer1.ServerReport .Refresh()
End Sub
I am running the program and I get a message. Can anyone please tell me what my problem is?
The message is: Object reference not set to an instance of an object.
Here's the code too:
Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
setParams()
ReportViewer1.ProcessingMo
ReportViewer1.ServerReport
ReportViewer1.ServerReport
(The message occurs on this next line)
RptParameters(0) = New Microsoft.Reporting.WebFor
RptParameters(1) = New Microsoft.Reporting.WebFor
RptParameters(2) = New Microsoft.Reporting.WebFor
RptParameters(3) = New Microsoft.Reporting.WebFor
RptParameters(4) = New Microsoft.Reporting.WebFor
RptParameters(5) = New Microsoft.Reporting.WebFor
RptParameters(6) = New Microsoft.Reporting.WebFor
RptParameters(7) = New Microsoft.Reporting.WebFor
ReportViewer1.ServerReport
ReportViewer1.ServerReport
End Sub
code for setParams() ???
ASKER
Sub setParams()
Dim i As Integer
If ddlUserName.SelectedValue <> "" Then
i = ddlUserName.SelectedValue. IndexOf(", ")
userLastName = ddlUserName.SelectedValue. Substring( 0, i)
userFirstName = ddlUserName.SelectedValue. Substring( i + 1, ddlUserName.SelectedValue. Length - (userLastName.Length + 1))
Else
userLastName = ""
userFirstName = ""
End If
If ddlCustomerName.SelectedVa lue <> "" Then
i = ddlCustomerName.SelectedVa lue.IndexO f(",")
custLastName = ddlCustomerName.SelectedVa lue.Substr ing(0, i)
custFirstName = ddlCustomerName.SelectedVa lue.Substr ing(i + 1, ddlCustomerName.SelectedVa lue.Length - (custLastName.Length + 1))
Else
custLastName = ""
custFirstName = ""
End If
End Sub
Dim i As Integer
If ddlUserName.SelectedValue <> "" Then
i = ddlUserName.SelectedValue.
userLastName = ddlUserName.SelectedValue.
userFirstName = ddlUserName.SelectedValue.
Else
userLastName = ""
userFirstName = ""
End If
If ddlCustomerName.SelectedVa
i = ddlCustomerName.SelectedVa
custLastName = ddlCustomerName.SelectedVa
custFirstName = ddlCustomerName.SelectedVa
Else
custLastName = ""
custFirstName = ""
End If
End Sub
above code is not related :)
how do you define RptParameters?
how do you define RptParameters?
try:
RptParameters(0) = New Microsoft.Reporting.WebFor ms.ReportP arameter(" user", txtUserName1.Text)
-->
RptParameters.add(New Microsoft.Reporting.WebFor ms.ReportP arameter(" user", txtUserName1.Text))
same for all others
RptParameters(0) = New Microsoft.Reporting.WebFor
-->
RptParameters.add(New Microsoft.Reporting.WebFor
same for all others
ASKER
I have it defined like this:
Dim RptParameters() As Microsoft.Reporting.WebFor ms.ReportP arameter
Dim RptParameters() As Microsoft.Reporting.WebFor
ASKER
RptParameters.add(-----)) is not allowed for system.array is the message i'm getting
something like this:
Dim RptParameters() As Microsoft.Reporting.WebFor ms.ReportP arameter = new Microsoft.Reporting.WebFor ms.ReportP arameter(7 )
Dim RptParameters() As Microsoft.Reporting.WebFor
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
that won't work
this did not work?
Dim RptParameters(7) As Microsoft.Reporting.WebFor ms.ReportP arameter
RptParameters(0) = New Microsoft.Reporting.WebFor ms.ReportP arameter(" user", txtUserName1.Text)
...
RptParameters(7) = New Microsoft.Reporting.WebFor ms.ReportP arameter(" enddate", txtEndDate.Text)
ReportViewer1.ServerReport .SetParame ters(RptPa rameters)
...
Dim RptParameters(7) As Microsoft.Reporting.WebFor
RptParameters(0) = New Microsoft.Reporting.WebFor
...
RptParameters(7) = New Microsoft.Reporting.WebFor
ReportViewer1.ServerReport
...
ASKER
This worked for me.
Dim RptParameters(7) As Microsoft.Reporting.WebFor ms.ReportP arameter
Dim RptParameters(7) As Microsoft.Reporting.WebFor
or use this syntax (from MS - Generic List approach)
Dim paramList As New Generic.List(Of ReportParameter)
paramList.Add(New ReportParameter("EmpID", "288", False))
paramList.Add(New ReportParameter("ReportMon th", "12", False))
paramList.Add(New ReportParameter("ReportYea r", "2003", False))
ReportViewer1.ServerReport .SetParame ters(param List)
http://msdn.microsoft.com/en-us/library/ms252663(v=vs.80).aspx
in your case:
Dim paramList As New Generic.List(Of ReportParameter)
paramList.Add(New ReportParameter("EmpID", "288", False))
paramList.Add(New ReportParameter("ReportMon
paramList.Add(New ReportParameter("ReportYea
ReportViewer1.ServerReport
http://msdn.microsoft.com/en-us/library/ms252663(v=vs.80).aspx
in your case:
Dim RptParameters As New Generic.List(Of Microsoft.Reporting.WebForms.ReportParameter)
RptParameters.Add(New Microsoft.Reporting.WebForms.ReportParameter("user", txtUserName1.Text))
...
RptParameters.Add(New Microsoft.Reporting.WebForms.ReportParameter("enddate", txtEndDate.Text))
ReportViewer1.ServerReport.SetParameters(RptParameters)