【问题标题】:RDLC Report: Apply Filter to ReportRDLC 报告:将过滤器应用于报告
【发布时间】:2016-08-16 23:15:47
【问题描述】:

我有两个参数dateFromdateTo,我想根据这些值过滤我的报告并显示报告中过滤行的total 列的总和。

目前,当我使用表达式=Sum([total]) 时,它会返回数据库中整列的总和,并且不会对表达式应用日期过滤器。

问题: 如何在日期 dateFromdateTo 参数之间应用总和,例如类似这样的伪代码:

=Sum(Field!Total.Value) where date between dt_from to dt_to

这是我用来加载显示报告的代码:

invoice_viewTableAdapter.Fill(this.db_posDataSetInvoice.invoice_view);
reportViewer1.RefreshReport();

【问题讨论】:

  • 您是否有任何与每条记录相关的日期以与这些起止日期进行比较?
  • 您可以对报表的数据源应用过滤器。
  • 是的,有一个日期列。过滤器适用于整个表格,但最后我想获得过滤报告的总和?我返回整个数据集未过滤报告的总和???
  • 我正在通过用户随时选择和更改的参数应用过滤器。所以我希望参数也应该应用于 [total] 以获得所有销售额的总和@RezaAghaei
  • 如果您有一个包含一些控件(表单参数值)的报表表单和一个显示报表的报表查看器,您可以简单地将参数应用到数据源并刷新报表。

标签: c# winforms report rdlc


【解决方案1】:

您应该对报告的数据源应用过滤器,例如:

invoice_viewTableAdapter.Fill(this.db_posDataSetInvoice.invoice_view);
this.invoice_viewBindingSource.Filter = "Put your filter here";
reportViewer1.RefreshReport();

假设您有一个 MyDateField 字段,并且您有 DateTime 类型的 dateFrom 和 dateTo。

这可以是您的日期过滤器:

String.Format("MyDateField>= #{0:yyyy/MM/dd}# AND MyDateField<= #{1:yyyy/MM/dd}#"
              , dateFrom, dateTo);

您可以找到有关BindingSource.Filter 表达式语法here 的更多信息。

【讨论】:

  • 已解决:非常感谢 Reza 先生 .. 我非常感谢你 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-14
  • 2022-12-10
  • 2019-01-08
  • 1970-01-01
  • 1970-01-01
  • 2020-01-13
  • 1970-01-01
相关资源
最近更新 更多