受保护的子Page_Load(ByVal发送者作为对象,ByVal e作为System.EventArgs)处理Me.Load
reportdoc1.Load(Server.MapPath("~\RepVoucherchq.rpt"))
CrystalReportViewer1.ReportSource = reportdoc1
ConnectionInfo()
Dim user_brno As String = CType(Session("userBrn"), String)
Dim date_from As String = CType(Session("date_from"), String)
Dim date_to As String = CType(Session("date_to"), String)
reportdoc1.RecordSelectionFormula = "{VEWVoucherchq.vocdate} between '" + date_from + "' and '" + date_to + "' and {VEWVoucherchq.chqbrNo} = " + user_brno
CrystalReportViewer1.RefreshReport()
End Sub
答案 0 :(得分:0)
我在这台计算机上没有Visual Studio来完全测试它,但是我认为您的记录选择公式中的语法已关闭。
尝试以下方法:
reportdoc1.RecordSelectionFormula = "{VEWVoucherchq.vocdate} in '" + date_from + "' to '" + date_to + "' and {VEWVoucherchq.chqbrNo} = " + user_brno
Crystal Reports不支持您使用的between/and
语法以所需的方式评估日期。支持的语法为{eval_date} IN {start_Date} to {end_Date}
。
您还可能遇到date_from
和date_to
字段为字符串数据类型而不是Date或DateTime数据类型的问题。如果这是一个问题,您将需要通过一个函数传递值以将它们正确地转换为日期。
这样的事情就足够了:
reportdoc1.RecordSelectionFormula = "{VEWVoucherchq.vocdate} in Date('" + date_from + "') to Date('" + date_to + "') and {VEWVoucherchq.chqbrNo} = " + user_brno
如果需要DateTime而不是Date数据类型,请用Date()
函数替换DateTime()
函数。