ssrs参数值区分大小写

时间:2014-07-03 10:44:22

标签: reporting-services sql-server-2008-r2 parameter-passing case-insensitive

我有一个报告链接(SSRS 2008 R2):

http://reportserver/pages/reportviewer.aspx?/folder1/report1&hostname=SERVER2

此报告有一个(下拉列表)参数,其中包含主机名。 下拉列表包含以下条目:

  • server1
  • 服务器2
  • 服务器3

问题是有时主机名以大写形式传递(即SERVER2),因此未在下拉列表中选择主机名与URL参数不匹配。这是因为SSRS在参数传递方面是区分大小写的。

我不想要区分大小写。

我尝试了数据集上的设置(数据集属性 - 选项 - 区分大小写),但是 那没用。

有可能吗?

下拉框或URL中的值,我无法修改。 最佳解决方案是不区分大小写的参数VALUE传递。

1 个答案:

答案 0 :(得分:2)

使用SQL中的LOWER()函数或SSRS中的LCASE()函数。这个函数将字符串转换为全部小写,如果你对两边都这样做,那么有效的情况并不重要。

所以:

WHERE LOWER(fieldName) = LOWER(@parameter)

=LCASE(Fields!fieldName.Value) = LCASE(Parameters!selection.Value)

更多信息:

更新

我稍微误解了你的问题。您是否通过手动生成带有参数值的网址来访问报告?这个值需要以一致的方式传递,否则这不会起作用。 SSRS区分大小写,您可以使用上述函数确保报表参数中的可用值格式一致。

但生成的URL也需要保持一致。通过这种方式,您可以明确设置参数的值,如果它不是有效的可用值,则它不会起作用。这里的问题实际上并不是SSRS,因为URL的来源不会以一致的方式生成参数值。

修复您的网址构建。