CrystalDecisions.Shared.ParameterDiscreteValue pdBeginDate=new CrystalDecisions.Shared.ParameterDiscreteValue();CrystalDecisions.Shared.ParameterDiscreteValue pdEndDate=new CrystalDecisions.Shared.ParameterDiscreteValue();

pdBeginDate.Value=Convert.ToDateTime(this.txtBeginDate.Text);pdEndDate.Value=Convert.ToDateTime(this.txtEndDate.Text);CrystalDecisions.Shared.ParameterValues pv=new CrystalDecisions.Shared.ParameterValues();CrystalDecisions.Shared.ParameterValues pv2=new CrystalDecisions.Shared.ParameterValues();pv.Add(pdBeginDate);pv2.Add(pdEndDate);objRepDoc.DataDefinition.ParameterFields["BeginDate"].ApplyCurrentValues(pv);objRepDoc.DataDefinition.ParameterFields["EndDate"].ApplyCurrentValues(pv2);用上面的方式为水晶报表指定的参数,在执行objRepDoc.Export()时出错:丢失参数字段当前值。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: CrystalDecisions.CrystalReports.Engine.ParameterFieldCurrentValueException: 丢失参数字段当前值。源错误: 
行 162:
行 163: //执行导出
行 164: objRepDoc.Export();
行 165:
行 166: objRepDoc.Close();
 

解决方案 »

  1.   

    问题解决.参数传入方式没问题,只是传入的太早了,放在了报表的数据库连接参数设置之前,在设置数据库连接参数之后,执行objRepDoc.Export()方法之前传参数即可把参数传进去.解决参数传递问题后,其实还出了一个问题,即在执行导时,出现了如下错误:"...The request could not be submitted for background processing."在support.businessobjects.com站点上(http://support.businessobjects.com/library/kbase/articles/c2012318.asp)可以看到,这是一个已知错误,看字面意思是打个Crystal Report 9 SP5补丁可以解决该问题,我尝试了一下,还是出错,再打上Crystal Report for VS.NET 2003 SP2还是不能解决该问题.在出现"丢失参数字段当前值。 "的问题后,我打过一个Month Hot Fix补丁:CR90MAINWIN_EN_200508.EXE,在打该补丁之前,没参数的报表在Export进没有任何问题,在打该补丁之后,水晶报表的主程序版本由9.2.0.448中文版变成了9.2.3.???英文版,同时所有报表在Export时也出现了"...The request could not be submitted for background processing."问题,由于该补丁无法单独卸载,于是完全卸载Crystal Report,并重新安装9.2.0.448中文版,两个问题便不再出现.