2010-02-24 124 views
1

我有一些基于服务器的报告(* .rdl),它从SQL Server 2008视图返回数据。 用户希望能够动态地添加滤波,例如报告服务:动态添加过滤器到服务器报告

  • 告诉我只用语言数据=英语,
  • 告诉我唯一的数据对于一个给定的组织单位

或类似的东西。过滤标准的数量相当小(四个或五个)。

但是我怎么做到这一点?我有我的服务器上的RDL,与报表数据集内的基本查询(SELECT (fields) FROM MyView WHERE ......) - 我怎么可以动态地添加过滤到?

我希望我能够定义数据集过滤器,但这些数据集过滤器似乎也必须在位(例如,它们成为报表RDL本身的一部分)。

为每个标准过于庞杂,我可以简单地将其添加为列表,并定义一个IN (list of values)一种过滤器的可能值.....

任何想法?思考?我错过了什么吗?


解决方案:我解决它通过对上报数据集,这是我设置为在报告后面都开始了“虚拟”过滤器的过滤选项,然后我更新,以实际过滤列和用户在UI中指定的值。迄今为止效果很好!

回答

1

它不是动态的(在用户不得不重新运行报告的意义上),但是如果只有四个或五个具有多个值的参数,简单的解决方案是添加一个多选参数他们每个人的报告都默认为“全部”。

是否有原因导致用户无法使用不同参数重新运行报表?

还是我误解了你的意思是动态的?

+0

@Ed:对于其中的一个或两个人来说,这将起作用 - 他们只有少数可能的值。然而,一些有潜在的可能值数百或数千,所以这不是真的可行。 – 2010-02-24 08:53:24

+0

@marc_s:你是否担心由于可用性,性能或其他因素而导致值列表的大小?如果可用性问题,有可能以子分类列表成层次结构? – 2010-02-24 09:19:13

+0

@Ed:两个,真的 - 一个有四到五个条目的列表是可以的,但是如果它有数百个或更多,它对于用户来说既不是真正可管理的,也不是真正的性能好.... – 2010-02-25 05:54:56

0

如果我理解您的问题:

您可以使用参数进行过滤。如果你有使用ReportViewer控件用于显示报告的应用程序,通过这个条件作为参数传递给您的报告。您可以通过此参数管理可见性或数据过滤。