如何在报表查看器中添加参数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在报表查看器中添加参数?相关的知识,希望对你有一定的参考价值。

HY!我在visual studio 2010中有一个表单应用程序,我想用报表查看器创建一个报表并添加一些参数。我试图从代码中添加参数,但它没有用。我有这个错误:

Tablix“Tablix1”的FilterExpression表达式指的是“datastart”字段。报表项表达式只能引用当前数据集范围内的字段,或者,如果在聚合内,则引用指定的数据集范围。 Report2.rdlc:error rsParameterReference:Tablix“Tablix1”的FilterValue表达式是指不存在的报表参数“datastart”。

在我的代码中,这样做:

 private void SetReportParameters()
    {
        ReportParameter[] parameters = new ReportParameter[2];
        parameters[0] = new ReportParameter("datastart", dateTimePickerStartRaport.Text);
        parameters[1] = new ReportParameter("dataStop", dateTimePickerStopRaport.Text);
        this.reportViewer1.LocalReport.SetParameters(parameters);
    }

并在调用此方法后,在报表查看器上刷新

 reportViewer1.RefreshReport();           

我也看看其他论坛,我看到我必须在报告中添加参数,但我没有理解我该如何做到这一点。我还试图在报告的属性窗口中添加一些有价值的过滤器

  =Parameters!datastart.Value     

但这也没有用。

答案

您得到的错误是因为您尝试像字段一样指定参数。在表达式设计器中,您有一个名为“参数”的特殊类别。从那里你可以访问你的参数。语法是=Parameters![FieldName].Value。在你的情况下,例如=Parameters!datastart.Value

另外,请注意,参数必须在“参数”下的“报表数据”窗口中声明。它与您用于声明记录集的窗口相同,但是还有一个特殊的参数类别。对于数据类型,还有一些选项,如果参数的规范是必需的。

另一答案

因此,在创建报告定义(rdl或rdlc文件)时,必须添加具有完全相同名称的参数。因此,对于您的情况,您必须添加datastartdataStop参数。要执行此操作,只需单击报表数据窗口中的参数,然后单击添加新。

另一答案

试试这个:

ReportParameter PrmInvoiceNo = new ReportParameter("PrmInvoiceNo");
PrmInvoiceNo.Values.Add(this.InvNo.ToString());
this.reportViewer1.LocalReport.SetParameters(PrmInvoiceNo);

以上是关于如何在报表查看器中添加参数?的主要内容,如果未能解决你的问题,请参考以下文章

Pentaho 报表设计器中的参数对齐

水晶报表查看器中未显示图像

如何在文档查看器中添加更多边距?

如何在片段着色器中进行自定义模板测试

如何添加子报表和参数

如何在DevExpress XtraReport报表中实现分组行号从新计算