C#ASP.Net+;CR 13-缺少参数值
我有一个由asp.net网页组成的项目,该网页生成一个特定项目每天的总使用量报告。 代码在CR 9和VS 2008中工作,但由于我用VS 2010将其转换为CR 13,因此每当我向报告中添加参数时,报告都会抛出“参数值丢失”错误。 该参数位于子报表中。 报告在没有参数的情况下正确可见。 [dt2有记录,我已将其填入上述代码] 我只是先在星期六试一下 我写的代码如下所示-C#ASP.Net+;CR 13-缺少参数值,asp.net,parameters,crystal-reports,report,Asp.net,Parameters,Crystal Reports,Report,我有一个由asp.net网页组成的项目,该网页生成一个特定项目每天的总使用量报告。 代码在CR 9和VS 2008中工作,但由于我用VS 2010将其转换为CR 13,因此每当我向报告中添加参数时,报告都会抛出“参数值丢失”错误。 该参数位于子报表中。 报告在没有参数的情况下正确可见。 [dt2有记录,我已将其填入上述代码] 我只是先在星期六试一下 我写的代码如下所示- crReport cr = new crReport(); cr.SetDatabaseLogon(gf.databaseUs
crReport cr = new crReport();
cr.SetDatabaseLogon(gf.databaseUsername, gf.databasePass);
((ReportDocument)cr.Subreports["MenuReport"]).SetDataSource(dt2);
#region Parameter gathering
ParameterValues paramQuantity = new ParameterValues();
for (int i = 0; i < dt.Rows.Count; i++)
{
dt2.Rows[i]["menuItemFK"] = jobBll.GetDataInfo("M_MenuItems", "id", dt.Rows[i]["menuItemFK"].ToString(), "menuItemName", true);
string menuItemFK = dt.Rows[i]["menuItemFK"].ToString();
string reportDate = dt.Rows[i]["reportDate"].ToString();
DataTable dtQuntity = new DataTable();
dtQuntity = jobBll.GetMenuItemDayUsage(menuItemFK, reportFrom, reportTo, "Saturday", true);
ParameterDiscreteValue parameterDiscreteValue = new ParameterDiscreteValue();
if (dtQuntity.Rows[0][0].ToString() != "")
parameterDiscreteValue.Value = dtQuntity.Rows[0][0].ToString();
else
parameterDiscreteValue.Value = "0";
paramQuantity.Add(parameterDiscreteValue);
}
#endregion
//cr.SetParameterValue("Sunday Quantity", paramQuantity, "MenuReport");
//cr.SetParameterValue("Monday Quantity", paramQuantity, "MenuReport");
//cr.SetParameterValue("Tuesday Quantity", paramQuantity, "MenuReport");
//cr.SetParameterValue("Wednesday Quantity", paramQuantity, "MenuReport");
//cr.SetParameterValue("Thursday Quantity", paramQuantity, "MenuReport");
//cr.SetParameterValue("Friday Quantity", paramQuantity, "MenuReport");
cr.SetParameterValue("saturdayQuantity", paramQuantity, "MenuReport");
crvReport.ReportSource = cr;
crvReport.RefreshReport();
crReport cr=new crReport();
cr.SetDatabaseLogon(gf.databaseUsername,gf.databasePass);
((ReportDocument)cr.Subreports[“MenuReport”]).SetDataSource(dt2);
#区域参数采集
ParameterValues paramQuantity=新的ParameterValues();
对于(int i=0;i
请尽快帮助我。
等待答复。
谢谢。好的,我终于开始工作了。 我将'cr'声明为'ReportDocument'对象,或者'crReport.rpt'对象也对cr.RefreshReport()进行了注释;,正在清除参数值。 现在它工作正常了。 为了显示记录的各个参数值,我为参数编写了“display string”公式,如下所示-
StringVar Array Input:={?saturdayQuantity};
Input[RecordNumber];
C代码现在看起来如下所示-
ReportDocument cr = new ReportDocument();//
string reportPath = Server.MapPath("crReport.rpt");//
cr.Load(reportPath);//
((TextObject)cr.ReportDefinition.ReportObjects["reportFrom"]).Text = reportFrom;
((TextObject)cr.ReportDefinition.ReportObjects["reportTo"]).Text = reportTo;
cr.SetDatabaseLogon(gf.databaseUsername, gf.databasePass);
#region Parameter gathering
ParameterValues paramQuantity = new ParameterValues();
for (int i = 0; i < dt.Rows.Count; i++)
{
dt2.Rows[i]["menuItemFK"] = jobBll.GetDataInfo("M_MenuItems", "id", dt.Rows[i]["menuItemFK"].ToString(), "menuItemName", true);
//GET OPENING & CLOSING STOCK TOTAL & ASSIGN BELOW
string menuItemFK = dt.Rows[i]["menuItemFK"].ToString();
string reportDate = dt.Rows[i]["reportDate"].ToString();
DataTable dtQuntity = new DataTable();
dtQuntity = jobBll.GetMenuItemDayUsage(menuItemFK, reportFrom, reportTo, "Saturday", true);
ParameterDiscreteValue parameterDiscreteValue = new ParameterDiscreteValue();
if (dtQuntity.Rows[0][0].ToString() != "")
parameterDiscreteValue.Value = dtQuntity.Rows[0][0].ToString();
else
parameterDiscreteValue.Value = "0";
paramQuantity.Add(parameterDiscreteValue);
}
cr.Subreports["MenuReport"].SetDataSource(dt2);
////cr.SetParameterValue("Sunday Quantity", paramQuantity, "MenuReport");
////cr.SetParameterValue("Monday Quantity", paramQuantity, "MenuReport");
////cr.SetParameterValue("Tuesday Quantity", paramQuantity, "MenuReport");
////cr.SetParameterValue("Wednesday Quantity", paramQuantity, "MenuReport");
////cr.SetParameterValue("Thursday Quantity", paramQuantity, "MenuReport");
////cr.SetParameterValue("Friday Quantity", paramQuantity, "MenuReport");
cr.SetParameterValue("saturdayQuantity", paramQuantity, "MenuReport");
////cr.SetParameterValue("Sunday Rate", paramQuantity, "MenuReport");
////cr.SetParameterValue("Monday Rate", paramQuantity, "MenuReport");
////cr.SetParameterValue("Tuesday Rate", paramQuantity, "MenuReport");
////cr.SetParameterValue("Wednesday Rate", paramQuantity, "MenuReport");
////cr.SetParameterValue("Thursday Rate", paramQuantity, "MenuReport");
////cr.SetParameterValue("Friday Rate", paramQuantity, "MenuReport");
////cr.SetParameterValue("Saturday Rate", paramQuantity, "MenuReport");
#endregion
crvReport.ReportSource = cr;
//crvReport.RefreshReport();//
ReportDocument cr=新的ReportDocument()//
字符串reportPath=Server.MapPath(“crReport.rpt”)//
cr.Load(reportPath)//
((TextObject)cr.ReportDefinition.ReportObjects[“reportFrom”])。Text=reportFrom;
((TextObject)cr.ReportDefinition.ReportObjects[“reportTo”]).Text=reportTo;
cr.SetDatabaseLogon(gf.databaseUsername,gf.databasePass);
#区域参数采集
ParameterValues paramQuantity=新的ParameterValues();
对于(int i=0;i
我已经在行的末尾用//标记了编辑过的代码。哪一行给出了错误?请指定。没有错误。完成此代码后,报告显示“Parameter values missing”,而我获取所有记录的所有参数。