trouble in passing parameter in crystal document
-
i am getting some trouble with a tutorial that i found on msdn web site : http://msdn.microsoft.com/en-us/library/ms227722.aspx. i would like to pass a parameter to my CrystalReport document,but i would like to send an integer value to my CR document and just one value(because in the tut its sending and array of string values). the code is the fellowing
Private Const PARAMETER_FIELD_NAME As String = "numb"
Private impbonrecepReport As ReportDocument Private Sub ConfigureCrystalReports() Dim myArrayList As ArrayList = New ArrayList() myArrayList.Add(999) Dim numbrecep As Integer numbrecep = 999 SetCurrentValuesForParameterField(impbonrecepReport, myArrayList) impbonrecepReport = New ReportDocument() Dim reportPath As String = Application.StartupPath & "\\" & "ImpBonReception.rpt" impbonrecepReport.Load(reportPath) CrystalReportViewer1.ReportSource = impbonrecepReport End Sub
Private Sub SetCurrentValuesForParameterField(ByVal myReportDocument As ReportDocument, ByVal myArrayList As ArrayList)
Dim currentParameterValues As ParameterValues = New ParameterValues() For Each submittedValue As Object In myArrayList Dim myParameterDiscreteValue As ParameterDiscreteValue = New ParameterDiscreteValue() myParameterDiscreteValue.Value = myArrayList.ToString() currentParameterValues.Add(myParameterDiscreteValue) Next Dim myParameterFieldDefinitions As ParameterFieldDefinitions = myReportDocument.DataDefinition.ParameterFields Dim myParameterFieldDefinition As ParameterFieldDefinition = myParameterFieldDefinitions(PARAMETER\_FIELD\_NAME) myParameterFieldDefinition.ApplyCurrentValues(currentParameterValues) End Sub
i got this error message
An unhandled exception of type 'System.NullReferenceException' occurred in GestionStock.exe
Additional information: La référence d'objet n'est pas définie à une instance d'un objet.in this line
Dim myParameterFieldDefinitions As ParameterFieldDefinitions = myReportDocument.DataDefinition.ParameterFields
can you help me to solve this problem? thank you -
i am getting some trouble with a tutorial that i found on msdn web site : http://msdn.microsoft.com/en-us/library/ms227722.aspx. i would like to pass a parameter to my CrystalReport document,but i would like to send an integer value to my CR document and just one value(because in the tut its sending and array of string values). the code is the fellowing
Private Const PARAMETER_FIELD_NAME As String = "numb"
Private impbonrecepReport As ReportDocument Private Sub ConfigureCrystalReports() Dim myArrayList As ArrayList = New ArrayList() myArrayList.Add(999) Dim numbrecep As Integer numbrecep = 999 SetCurrentValuesForParameterField(impbonrecepReport, myArrayList) impbonrecepReport = New ReportDocument() Dim reportPath As String = Application.StartupPath & "\\" & "ImpBonReception.rpt" impbonrecepReport.Load(reportPath) CrystalReportViewer1.ReportSource = impbonrecepReport End Sub
Private Sub SetCurrentValuesForParameterField(ByVal myReportDocument As ReportDocument, ByVal myArrayList As ArrayList)
Dim currentParameterValues As ParameterValues = New ParameterValues() For Each submittedValue As Object In myArrayList Dim myParameterDiscreteValue As ParameterDiscreteValue = New ParameterDiscreteValue() myParameterDiscreteValue.Value = myArrayList.ToString() currentParameterValues.Add(myParameterDiscreteValue) Next Dim myParameterFieldDefinitions As ParameterFieldDefinitions = myReportDocument.DataDefinition.ParameterFields Dim myParameterFieldDefinition As ParameterFieldDefinition = myParameterFieldDefinitions(PARAMETER\_FIELD\_NAME) myParameterFieldDefinition.ApplyCurrentValues(currentParameterValues) End Sub
i got this error message
An unhandled exception of type 'System.NullReferenceException' occurred in GestionStock.exe
Additional information: La référence d'objet n'est pas définie à une instance d'un objet.in this line
Dim myParameterFieldDefinitions As ParameterFieldDefinitions = myReportDocument.DataDefinition.ParameterFields
can you help me to solve this problem? thank youThe error is telling you that the object isn't initialized. And it is right. Change your code to the following:
impbonrecepReport = New ReportDocument() Dim reportPath As String = Application.StartupPath & "\\" & "ImpBonReception.rpt" impbonrecepReport.Load(reportPath)
SetCurrentValuesForParameterField(impbonrecepReport, myArrayList)
CrystalReportViewer1.ReportSource = impbonrecepReport
Initialize and load your report first, then set the parameter value's and then show it. You'll also have to change
ByVal myReportDocument As ReportDocument
to
ByRef myReportDocument As ReportDocument
Or make the sub into a function and return the report at the end. Basicly you passed an empty object to the 'SetCurrentValuesForParameterField'.