1

Crystal Reports for Visual Studio を使用して、Visual Studio 2012 で Visual Basic を使用しています。

複数の値を受け入れることができる Crystal Report のパラメータがあります (例: Regions)。vb.net からその 1 つのパラメーターに複数の値を渡すにはどうすればよいですか? 値は、ListBox からの選択から取得されます。

これが他の場所で回答されている場合は申し訳ありません。インターネット上で多くの検索を試みましたが、うまくいきませんでした。

前もって感謝します!

ボブ

求められたとおり、ComboBox から単一の値を選択するコードを次に示します。Crystal Report のパラメータは 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()
4

1 に答える 1

3

SAP Web サイトで答えを見つけることができました。必要な人のために、記事へのリンクを次に示します。

パラメータに複数の値を渡す

また、これは私が使用した実際のコードで、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()
于 2013-05-20T20:02:24.670 に答える