Передача нескольких значений в один параметр Crystal Reports из VB.net

Я использую Visual Basic в Visual Studio 2012 с Crystal Reports для Visual Studio.

У меня есть параметр в Crystal Report, который может принимать несколько значений (например, Регионы). Как передать несколько значений в этот единственный параметр из vb.net? Значения будут исходить из выбора из ListBox.

Извините, если это ответили в другом месте. Я перепробовал много поисков по всему интернету без удачи.

Заранее спасибо!

боб

Как и просили, вот код, из которого я выбираю одно значение из ComboBox. Параметром в отчете Crystal является BuyDate. Я просто не уверен, как сделать это для нескольких значений. Если вам нужно больше деталей, просто дайте мне знать.

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()

1 ответ

Решение

Мне удалось найти ответ на веб-сайте SAP. Вот ссылка на статью, для всех, кому она может понадобиться.

Передача нескольких значений в параметр

Кроме того, вот фактический код, который я использовал, который запускает отчет, основанный на PO#, выбранном из 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()
Другие вопросы по тегам