Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何过滤RDLC报告中的数据?_C#_Asp.net_Visual Studio 2010_Report_Rdlc - Fatal编程技术网

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

C# 如何过滤RDLC报告中的数据?,c#,asp.net,visual-studio-2010,report,rdlc,C#,Asp.net,Visual Studio 2010,Report,Rdlc,我是VisualStudio2010中RDLC报告的新手。 我在一个网站上工作,在这里我使用了VS2010的报告功能。我使用ReportViewer显示Report1.rdlc。它完美地展示了它。现在,我的要求是在运行时过滤报表中的数据。我看了一遍这个问题,但无法理解它的答案。 因为Report1.rdlc在代码隐藏中不可用 现在,如何在运行时过滤报表的数据?如何从服务器获取数据等。是否绑定到datatable结果?如果是这样,您可以让查询在提取数据时应用过滤器,这样就不必在实际报告中执行任何特

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


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

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

根据您的反馈,如果您得到一个数据表,那么应用一个过滤器应该很容易

DataTable oDT = YourSQLCommandToGetData();
oDT.DefaultView.RowFilter = "SomeColumn = x and OtherColumn = y";
然后运行您的报告。如果您想将其提升到另一个级别,并确保没有任何不需要的记录,您甚至可以执行以下操作

DataTable oNewFilteredResult = oDT.DefaultView.ToTable();

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

当然,您可以将数据集分配给RDLC报告,并且在reportviewer的页面中,您将使用对象数据源,从而使用包含数据表的XSD数据集来封装查询

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

WHERE (Table.Field = @Param OR @Param = A_Default_Value)
现在,在调用报表下拉列表、文本框等之前,将您喜欢的控件添加到页面中。这些控件过滤对象数据源,该对象数据源映射到rdlc报表中的数据集,因此,在单击某个按钮(例如“显示报表”)时,报表将被过滤,要刷新对象数据源,请将其数据绑定并在reportviewer中重新显示报告

您可以考虑将过滤控件的值赋给RDLC中的参数,以便在生成它时可以在报表的头中显示报表的参数:

Parameters!ParameterName.Value

希望对您有所帮助。

是的,我正在绑定到一个数据表,但向导没有提供任何查询选项。它只是询问桌名。我正在使用SQL Server。