0

我正在使用水晶报表,因为我正在使用如下代码将 SQL 数据显示到水晶报表中,

string req = "{View_EODPumpTest.ROId} IN " + str + " AND " + "({View_EODPumpTest.RecordCreatedDate}>=date(" + fromDate.Year + " , " + fromDate.Month + " , " + fromDate.Day + ")" + "AND" + "{View_EODPumpTest.RecordCreatedDate}<=date(" + toDate.Year + " , " + toDate.Month + " ," + toDate.Day + " ))";

ReportDocument rep = new ReportDocument();
rep.Load(Server.MapPath("PumpTestReport.rpt"));

DateTime fromDate = DateTime.Parse(Request.QueryString["fDate"].ToString());
                DateTime toDate = DateTime.Parse(Request.QueryString["tDate"].ToString());
                CrystalReportViewer_PumpTest.ReportSource = rep;
                //CrystalReportViewer1.SelectionFormula = str;
                rep.RecordSelectionFormula = str;
                CrystalDecisions.CrystalReports.Engine.TextObject from = ((CrystalDecisions.CrystalReports.Engine.TextObject)rep.ReportDefinition.ReportObjects["txtFrom"]);
                from.Text = fromDate.ToShortDateString();
                CrystalDecisions.CrystalReports.Engine.TextObject to = ((CrystalDecisions.CrystalReports.Engine.TextObject)rep.ReportDefinition.ReportObjects["txtTO"]);
                to.Text = toDate.ToShortDateString();
                //Session["Repo"] = rep;
                CrystalReportViewer_PumpTest.RefreshReport();

运行我的应用程序后,它执行得很好,没有例外,但是我遇到了这样的错误,

A number range is required here. Error in File C:\DOCUME~1\Delmon\LOCALS~1\Temp\PumpTestReport {14E557A7-51B3-4791-9C78-B6FBAFFBD87C}.rpt: Error in formula . '{View_EODPumpTest.ROId} IN ['15739410','13465410'] AND ({View_EODPumpTest.RecordCreatedDate}>=date(2010 , 12 , 1)AND{View_EODPumpTest.RecordCreatedDate}<=date(2010 , 12 ,25 ))' A number range is required here.

错误。

我会为此做些什么?

请帮忙,

提前致谢

4

1 回答 1

3

您没有在代码示例中包含“str”的定义,但我猜它是一组以逗号分隔的值。要让 Crystal 解释这一点,您必须将值范围放在 [ 和 ] 内,而不是您可能在 SQL 中使用的标准 ( 和 )。例如,

{View_EODPumpTest.ROId} IN [1,2,3,4,5,6]
于 2010-12-29T10:49:47.730 回答