Bob Allande
Bob Allande

Reputation: 41

Passing Multiple Values to a single Crystal Reports parameter from VB.net

I am using Visual Basic in Visual Studio 2012 with Crystal Reports for Visual Studio.

I have a parameter in a Crystal Report that can accept multiple values (for instance: Regions). How do I pass multiple values to that single parameter from vb.net? The values would be coming from selections from a ListBox.

Sorry if this is answered elsewhere. I have tried many searches all over internet with no luck.

Thanks in advance!

Bob

As asked for, here is code from where I select a single value from ComboBox. The Parameter in the Crystal Report is BuyDate. I just am not sure how to make it for multiple values. If you need more details, just let me know.

Dim crParameterFieldDefinitions As ParameterFieldDefinitions
Dim crParameterFieldDefinition As ParameterFieldDefinition
Dim crParameterValues As New ParameterValues
Dim crParameterDiscreteValue As New ParameterDiscreteValue

Dim SSBuy = New CrystalDecisions.CrystalReports.Engine.ReportDocument()
Dim Filepath = "\\filepath\Report By Buy Date.rpt"

SSBuy.Load(Filepath)

crParameterDiscreteValue.Value = ComboBox1.SelectedItem
crParameterFieldDefinitions = SSBuy.DataDefinition.ParameterFields
crParameterFieldDefinition = crParameterFieldDefinitions.Item("BuyDate")
crParameterValues = crParameterFieldDefinition.CurrentValues

crParameterValues.Clear()
crParameterValues.Add(crParameterDiscreteValue)

crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)
SSBuyForm.CrystalReportViewer1.ReportSource = SSBuy

SSBuyForm.Refresh()
SSBuyForm.Show()

Upvotes: 1

Views: 10406

Answers (1)

Bob Allande
Bob Allande

Reputation: 41

I was able to find the answer on the SAP website. Here is the link to the article, for anyone else who may need it.

Pass Multiple Values to a Parameter

Also, here is the actual code I used, which runs a report based on PO#'s selected from a ListBox.

Dim crParameterFieldDefinitions As ParameterFieldDefinitions
Dim crParameterFieldDefinition As ParameterFieldDefinition
Dim crParameterValues As New ParameterValues
Dim crParameterDiscreteValue As New ParameterDiscreteValue

Dim SSPO = New CrystalDecisions.CrystalReports.Engine.ReportDocument()
Dim Filepath = "\\Filepath\Report Download By PO #.rpt"

SSPO.Load(Filepath)

crParameterFieldDefinitions = SSPO.DataDefinition.ParameterFields
crParameterFieldDefinition = crParameterFieldDefinitions("PO#")
crParameterValues = crParameterFieldDefinition.CurrentValues

Dim Count As Integer = POList1.SelectedItems.Count

For i = 0 To Count - 1
     If i > 0 Then
          crParameterDiscreteValue = Nothing
     End If
     crParameterDiscreteValue = New ParameterDiscreteValue()
     crParameterDiscreteValue.Value = POList1.SelectedItems(i)
     crParameterValues.Add(crParameterDiscreteValue)
Next

crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)
SSPoForm.CrystalReportViewer1.ReportSource = SSPO

SSPoForm.Refresh()
SSPoForm.Show()

Upvotes: 3

Related Questions