如何在SSRS中创建列表作为参数?

时间:2014-03-07 15:31:33

标签: sql reporting-services

我在2005 SSRS中有一个报告,我想添加一个参数。该参数将由一组邮政编码组成,但可以在列表中选择为单个项目。

例如,我希望在列表中有5个邮政编码作为一个选项,而另一个选择3个邮编:

Select 11111,22222,33333,44444,55555,66666 AS Boondock
Select 77777,88888,99999 AS Timbuck
Select Zip Codes NOT IN (11111-99999) AS Everything Else

所以我在下拉列表中的选择将是:
处刑
Timbuck
其他一切

任何人都可以帮我解决创建此参数的问题吗?

2 个答案:

答案 0 :(得分:1)

  1. 创建一个简单的字符串参数以呈现给用户。我们称之为ZipCodeSet
  2. 创建一个检查@ZipCodeSet参数的数据集,并返回相应的邮政编码列表。称之为ZipCodeSelection
  3. 创建一个内部multivaue参数,该参数使用ZipCodeSelection作为其可用值和默认值。称之为SelectedZipCodes
  4. 在报告的数据集中使用SelectedZipCodes

答案 1 :(得分:0)

这里最简单的解决方案可能是使用数据集上的计算字段,称为LocationDescription,例如:

=SWITCH(Fields!ZipCode >= 11111 and Fields!ZipCode <= 66666, "Boondock", Fields!ZipCode >= 77777 and Fields!ZipCode <= 99999, "Timbuck",True, "Everywhere Else")

最后的唯一真实陈述是由于SWITCH表达式从左向右读取并且一旦将其中一个开关评估为TRUE就退出。这样,对于ZipCodes表中的每个项目,您总是会得到一个真实的结果。

我假设您正在评估一系列ZipCodes,而不是11111,22222的确切值,依此类推?如果是这样,交换机将具有更多值。如果您想要一个确切的答案,那么您的数据样本会有所帮助。

一旦构建了计算字段,就可以根据LocationDescription字段的查询设置一个包含可用值的参数(称为@LocationParameter),然后使用以下方法过滤数据集:

表达式: = Fields!LocationDescription

接线员:=

值:  @LocationParameter

(如果您希望对参数进行多项选择,请将运算符更改为IN)

希望有所帮助。

相关问题