为什么我必须设置 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 属性 时填充的选择标准。您描述的问题听起来好像此选择标准所需的数据在报告的第一次 运行 期间不在范围内,但在报告第二次 运行 时在范围内。
我更新了一个程序以使用 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 属性 时填充的选择标准。您描述的问题听起来好像此选择标准所需的数据在报告的第一次 运行 期间不在范围内,但在报告第二次 运行 时在范围内。