Передача нескольких значений в один параметр 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()