2

与 CR 合作相对较新。最近一直在将许多以前通过 vbscripts 执行的旧报告转换为在 vb.net 上运行。

我有一份特别的报告,我无法工作。为了运行,它需要一个存储在名为“DateRange”的参数字段中的日期范围

在调用此报告并导出它的旧 vbscript 中,传递此日期范围参数的代码是:

Set crParms = CrystalReport.ParameterFields
crParms.Item(1).AddCurrentRange CDate(StartDate), CDate(EndDate), 3

任何人都可以帮助我了解这段代码在 vb.net 中的样子吗?我有点困惑,因为报告中的“DateRange”参数是一个变量。那么它是否期望收集日期或其他东西?

我只是创建一个简单的控制台项目来调用报告、传递日期范围并导出报告。我已经能够找出导出报告的代码,而且效果很好。我只需要弄清楚如何将我的日期范围传递到报告中。

谢谢!

4

2 回答 2

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>

我确实发现本教程对于编写上面对我有用的代码非常有帮助。

于 2012-11-01T19:48:07.937 回答
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()
于 2013-04-23T10:31:21.357 回答