繁体   English   中英

如何过滤 RDLC 报告中的数据?

[英]How to filter data in RDLC report?

我是 Visual Studio 2010 中 RDLC 报告的新手。
我在一个网站上工作,在这个网站上我使用了 VS2010 的报告功能。 我使用ReportViewer来显示Report1.rdlc 它完美地展示了它。 现在我的要求是在运行时过滤报表中的数据。 我经历了这个问题,但无法理解它的答案。
因为Report1.rdlc在后面的代码中不可用。

现在,如何在运行时过滤报表数据?

当然,您将数据集分配给 rdlc 报告,并且在您的报告查看器的页面中,您将使用封装查询的对象数据源(以及因此带有数据表的 XSD 数据集)。

查询自然有一个where子句,您可以在其中插入参数来过滤数据,例如:

WHERE (Table.Field = @Param OR @Param = A_Default_Value)

现在在调用报表(下拉列表、文本框等)之前将您喜欢的控件添加到页面中,这些控件过滤对象数据源,该数据源映射到 rdlc 报表中的数据集,因此,报表将在单击某个按钮(例如Show Report )时进行过滤,以刷新对象数据源(对它们进行数据绑定)并在报告查看器中重新显示报告。

您可以考虑将过滤控件的值分配给 rdlc 中的参数,以便您可以在生成报告时在其标题中显示报告的参数:

Parameters!ParameterName.Value

希望对您有所帮助。

您如何从服务器等获取数据。您是否绑定到数据表结果? 如果是这样,您可以让您的查询在提取数据开始时应用过滤器,这样您就不必在实际报告中做任何特别的事情。

根据您的反馈,如果您正在获取 DataTable,那么应用过滤器应该很容易,例如

DataTable oDT = YourSQLCommandToGetData();
oDT.DefaultView.RowFilter = "SomeColumn = x and OtherColumn = y";

然后运行您的报告。 如果您想将其提升到另一个级别并确保您没有任何不需要的记录,您甚至可以执行类似的操作

DataTable oNewFilteredResult = oDT.DefaultView.ToTable();

然后,您可以分配 NEW 表来调用 RDLC。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM