为什么我必须设置 CrystalReportViewer.ReportSource 两次?

Why would I have to set CrystalReportViewer.ReportSource twice?

我更新了一个程序以使用 Crystal 报告版本 13.0.3500.0,但现在报告无法正确显示。报告 运行s 但显示了所有数据。但是,如果我 运行 它两次或连续两次 rptViewer.ReportSource = rptDocument 它将完美地工作。为什么会这样?

报告采用一个参数(日期),运行两次之间没有任何变化。

Dim StartDate = "2018-02-06"
Dim strReportPath As String = "\report path"    
Dim rptDocument As New ReportDocument
rptDocument.Load(strReportPath)

Dim crParameterFieldDefinitions As ParameterFieldDefinitions
Dim crParameterFieldDefinition As ParameterFieldDefinition
Dim crParameterValues As ParameterValues
Dim crParameterDiscreteValue As New ParameterDiscreteValue

crParameterDiscreteValue.Value = StartDate
crParameterFieldDefinitions = rptDocument.DataDefinition.ParameterFields
crParameterFieldDefinition = crParameterFieldDefinitions.Item("StartDate")
crParameterValues = crParameterFieldDefinition.CurrentValues

crParameterValues.Clear()
crParameterValues.Add(crParameterDiscreteValue)
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)

rptViewer.ReportSource = Nothing
rptViewer.ReportSource = rptDocument

'It works if I add this additional line below
'rptViewer.ReportSource = rptDocument

检查记录 Select 专家,看看您是否定义了任何可能不会在第一次调用 ReportSource 属性 时填充的选择标准。您描述的问题听起来好像此选择标准所需的数据在报告的第一次 运行 期间不在范围内,但在报告第二次 运行 时在范围内。