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

标签 c# winforms parameters header reportviewer

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

Tablix“Tablix1”的 FilterExpression 表达式引用字段“datastart”。报表项表达式只能引用当前数据集范围内的字段,或者如果在聚合内,则引用指定的数据集范围内的字段。 Report2.rdlc:错误 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

此外,请注意必须在“参数”下的“报告数据”窗口中声明参数。它与您用来声明记录集的窗口相同,但是也有一个特殊的参数类别。还有一些数据类型选项,以及是否必须指定参数。

关于c# - 如何在报表查看器中添加参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5103784/

相关文章:

c# - 如何正确清理 C# 中的互操作对象

c# - 如何在 C#.net 中使用 awesomium 登录谷歌帐户?

c# - 如何将焦点设置到 datagridview 中的特定单元格?

string - 绑定(bind)到参数时,如何防止字符串参数从 null 更改为空?

oracle - Oracle 存储过程的 "Boolean"参数

asp.net-mvc - 从页面到局部 View 的 asp.net mvc 参数

c# - 如何使用相同的变量使此 VB 代码在 C# 中工作?

c# - 为什么Form.Close要等待MessageBox.Show?

c# - 通过 C# 递归通知子控件

c# - WPF Canvas.GetLeft() 总是接收 NaN 值