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

问题描述 投票:0回答:2

我是 Visual Studio 2010 中 RDLC 报告的新手。
我正在开发一个网站,在这个网站中我使用了VS2010的报告功能。我用

ReportViewer
来显示
Report1.rdlc
。它完美地展示了这一点。现在我的要求是在运行时过滤报告中的数据。我经历了this问题,但无法理解它的答案。
因为
Report1.rdlc
在代码隐藏中不可用。

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

c# asp.net visual-studio-2010 report rdlc
2个回答
0
投票

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

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

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

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

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

Parameters!ParameterName.Value

希望对您有帮助。


0
投票

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

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

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

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

DataTable oNewFilteredResult = oDT.DefaultView.ToTable();

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

© www.soinside.com 2019 - 2024. All rights reserved.