Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从VB.net将多个值传递给单个Crystal Reports参数_Vb.net_Visual Studio 2012_Crystal Reports_Parameter Passing - Fatal编程技术网

从VB.net将多个值传递给单个Crystal Reports参数

从VB.net将多个值传递给单个Crystal Reports参数,vb.net,visual-studio-2012,crystal-reports,parameter-passing,Vb.net,Visual Studio 2012,Crystal Reports,Parameter Passing,我正在Visual Studio 2012中使用Visual Basic和Visual Studio的Crystal Reports 我在Crystal报表中有一个参数,可以接受多个值,例如:Regions。如何从vb.net向单个参数传递多个值?这些值将来自列表框中的选择 Dim crParameterFieldDefinitions As ParameterFieldDefinitions Dim crParameterFieldDefinition As ParameterFieldDef

我正在Visual Studio 2012中使用Visual Basic和Visual Studio的Crystal Reports

我在Crystal报表中有一个参数,可以接受多个值,例如:Regions。如何从vb.net向单个参数传递多个值?这些值将来自列表框中的选择

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()
对不起,如果这是回答其他地方。我在互联网上做了很多搜索,但都没有成功

提前谢谢

上下快速移动 正如所要求的,下面是我从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()

我在SAP网站上找到了答案。这里是这篇文章的链接,供其他可能需要它的人使用

另外,这里是我使用的实际代码,它根据从列表框中选择的PO运行报告

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

首先显示您拥有的。我包含了上面的代码,这是向参数发送单个值时有效的代码。您有什么错误?