2012-12-03 23 views
1

我有一些非常自定义的报告,我使用Microsoft Reporting rdlc文件设计。在第一份报告中我使用参数,以便:Microsoft报告参数未重置

R_1_1R_1_2R_1_3R_1_4R_1_5R_1_6R_2_1R_2_2 ...

在第二次报告中,我有参数,以便:

R_1_1R_1_2R_1_3R_1_4R_1_5,R_1_6R_1_7R_1_8R_2_1R_2_2 ...

,我使用绑定报告验证码:

this.ReportViewer.LocalReport.ReportPath = BaseAddress + drpReportNumber.SelectedValue.Trim() + ".rdlc"; 
    this.ReportViewer.LocalReport.Refresh(); 

    this.ReportViewer.LocalReport.DataSources.Clear(); 
    Microsoft.Reporting.WebForms.ReportDataSource rprtDTSource = new Microsoft.Reporting.WebForms.ReportDataSource("DataSet1", new DataTable("DataSet1")); 
    this.ReportViewer.LocalReport.DataSources.Add(rprtDTSource); 
    this.ReportViewer.LocalReport.Refresh(); 

    if (parameters != null && parameters.Count > 0) 
    { 
     for (int i = 0; i < parameters.Count; i++) 
     { 
      ReportParameter p = new ReportParameter(parameters[i].ParameterName, parameters[i].ParameterValue); 
      this.ReportViewer.LocalReport.SetParameters(p); 
     } 
    } 

的问题是,当我创建的第一份报告,然后我还想创建第二个报告,报告查看器引发此错误:

{"An attempt was made to set a report parameter 'R_1_7' that is not defined in this report."}

我有两个问题;

  1. 参数计数是否有限制?

  2. 我认为当我绑定ReportViewer第一次报告它不包含R_1_7,并在第二次参数列表不重置,它使用第一个参数列表。我如何解决这个问题?

+0

看来你没有适当改变'LocalReport'。我向你们说过,ReportParameters是在报告(.rldc文件)中定义的,而不是在'DataSet'中定义的。我可以说你已经截取的代码来自一个你正在增加变量'drpReportNumber'的cicle。使用调试,并检查您是否使用正确的报告 –

回答

3

我刚刚发现this blog post,这似乎有你的问题。

this.ReportViewer.LocalReport.DataSources.Clear();前补充一点:

this.ReportViewer.Reset();