我在Visual Studio 2012中使用Visual Basic和Crystal Reports for Visual Studio。
我在Crystal Report中有一个可以接受多个值的参数(例如:Regions)。如何从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()
答案 0 :(得分:2)
我能够在SAP网站上找到答案。以下是该文章的链接,供其他可能需要它的人使用。
Pass Multiple Values to a Parameter
此外,这是我使用的实际代码,它根据从ListBox中选择的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()