与CR合作相对较新。最近一直在转换以前通过vbscripts执行的许多旧报告,以便与vb.net一起运行。
我有一个特别的报告我无法工作。为了运行,它需要一个日期范围,它存储在一个名为“DateRange”
的参数字段中在调用此报告并将其导出的旧vbscript中,传递此daterange参数的代码为:
Set crParms = CrystalReport.ParameterFields
crParms.Item(1).AddCurrentRange CDate(StartDate), CDate(EndDate), 3
有人可以帮我解决这个代码在vb.net中的样子吗?我有点困惑,因为在报告中“DateRange”参数是单个变量。那么期待收集日期还是什么呢?
我只是创建一个简单的控制台项目来调用报告,传递日期范围并导出报告。我已经能够找出导出报告的代码,并且效果很好。我只需要弄清楚如何将我的日期范围传递到报告中。
谢谢!
答案 0 :(得分:3)
如果其他人需要帮助将两个日期从VB.NET传递到Crystal报表中的单个DateRange参数,这最终会为我工作:
Const PARAMETER_FIELD_NAME As String = "DateRange"
Dim startDate as Date
Dim endDate as Date
<other code>
Dim crParameterFieldDefinitions As ParameterFieldDefinitions
Dim crParameterFieldDefinition As ParameterFieldDefinition
Dim crParameterValues As New ParameterValues
Dim crParameterRangeValue As New ParameterRangeValue
crParameterRangeValue.StartValue = startDate
crParameterRangeValue.EndValue = endDate
crParameterFieldDefinitions = cryReport.DataDefinition.ParameterFields
crParameterFieldDefinition = crParameterFieldDefinitions.Item(PARAMETER_FIELD_NAME)
crParameterValues = crParameterFieldDefinition.CurrentValues
crParameterValues.Clear()
crParameterValues.Add(crParameterRangeValue)
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)
<other code>
我确实发现this tutorial对于编写适合我的代码非常有帮助。
答案 1 :(得分:0)
Dim cryRpt As New ReportDocument
cryRpt.Load("PUT CRYSTAL REPORT PATH HERE\CrystalReport1.rpt")
Dim crParameterFieldDefinitions As ParameterFieldDefinitions
Dim crParameterFieldDefinition As ParameterFieldDefinition
Dim crParameterValues As New ParameterValues
Dim crParameterDiscreteValue As New ParameterDiscreteValue
crParameterDiscreteValue.Value = enteredDate
crParameterFieldDefinitions = _
cryRpt.DataDefinition.ParameterFields
crParameterFieldDefinition = _
crParameterFieldDefinitions.Item("Orderdate")
crParameterValues = crParameterFieldDefinition.CurrentValues
crParameterValues.Clear()
crParameterValues.Add(crParameterDiscreteValue)
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)
CrystalReportViewer1.ReportSource = cryRpt
CrystalReportViewer1.Refresh()