拉出记录后,RDLC参数进行过滤

时间:2014-05-29 18:35:31

标签: c# sql-server

我尝试使用显示RDLC的reportviewer来确定客户端报告的最佳做法。设计报表时,您可以指定要传递给报表的参数,这些参数可用于过滤记录。但是,在运行报表时,使用SQL事件探查器会显示在为报表下拉记录后应用过滤器。我看到了吗?

如果是这样,为什么这种事情不鼓励呢?不应该在数据集级别或某个时刻过滤记录,以便在发送到客户端之前过滤记录(当然,出于性能原因)?我已经查看并在互联网上寻找对这些问题的讨论,我所看到的是实现参数的多种方式(即,如何),但没有讨论何时一种方式比另一种方式更好以及为什么。这不是什么新东西,所以我希望有更多关于这一点。如果我错过了什么,有人能指出我讨论这个问题吗?

1 个答案:

答案 0 :(得分:1)

我最近在客户端RDLC上进行了实验,得出的结论是数据处理效率太低。就像你指出的那样,我遇到了参数不能过滤的问题,正如你所期望的那样。近10年前我使用了水晶报告(我认为这是基于此报告),我确信没有这样的问题。

我使用的最佳方法是在生成报告之前预先准备数据集。我发现总是在运行时传递数据,而不是在报表定义中定义数据访问,以确保它只会使用您提供的数据。

你是对的,关于使用它的文档/讨论很少,最终我最终将其从我的项目中移除并使用其他方法来渲染图表/表等。