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

时间:2018-02-06 19:41:27

标签: vb.net crystal-reports

我已更新程序以使用Crystal Reports版本13.0.3500.0,现在报告无法正确显示。报告运行但显示所有数据。但是,如果我运行两次或连续两次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

1 个答案:

答案 0 :(得分:1)

选中“记录选择专家”以查看是否已定义任何在第一次调用ReportSource属性时可能未填充的选择条件。您描述的问题听起来好像在第一次运行报表时此选择条件所需的数据不在范围内,但在报表第二次运行时就在范围内。