【发布时间】:2013-04-17 21:40:48
【问题描述】:
我有两个关于报表的 tablix,以及一个用于向 tablix 提供数据的数据集。我在报表上有一个多选参数,我需要根据该参数中的值过滤结果。
有什么区别吗,如果有,有什么更好的解决办法:
直接在数据集或 Tablix 上创建过滤器?他们都会给我相同的结果,但什么是正确的或更好的?
【问题讨论】:
标签: reporting-services ssrs-2008
我有两个关于报表的 tablix,以及一个用于向 tablix 提供数据的数据集。我在报表上有一个多选参数,我需要根据该参数中的值过滤结果。
有什么区别吗,如果有,有什么更好的解决办法:
直接在数据集或 Tablix 上创建过滤器?他们都会给我相同的结果,但什么是正确的或更好的?
【问题讨论】:
标签: reporting-services ssrs-2008
如有疑问,请始终尽可能靠近您的数据源。理想的做法是在 SQL Server 视图或存储过程中过滤事物,因为这可以优化;下一个最好的事情是过滤 SSRS 数据集。
在 tablix 项目中过滤应该是最后的手段,并且会涉及运行速度相当慢的报表。
那里:那是我的 penn'orth!
【讨论】:
这个问题没有明确的答案可以适用于所有情况。
在您的情况下,由于两个 Tablix 对象都需要相同的过滤器,我将在数据集级别应用它;这样您就不会在报告中重复代码/逻辑。
或者甚至考虑在生成数据集时应用过滤器,例如如果它来自存储过程,请实施合适的WHERE 子句以在数据库级别进行过滤。这样可以减少不必要的数据传输。
我会选择最容易编码和可维护性的东西。在您提供的选项中,数据集过滤似乎是可行的方法。
【讨论】: