【发布时间】:2018-10-22 22:02:33
【问题描述】:
基本上我已经使用 SSRS 2008 构建了一个报告,该报告具有级联参数,独立的参数是一个多值参数(工作单位),其中填充了来自数据库查询的值,依赖参数(相应工作中包含的职位) units) 还从带有 where 子句的查询中获取值,如下所示:
WHERE position.unitId IN (@units)
@units 是多值参数。 单位的默认值是查询本身——用户可以访问所有这些。因此,在打开报告时,会选择所有可用单位并检索所有相应的工作职位 - 工作正常。但是 aser 也不能访问任何单元,这会导致相关查询失败,因为没有检索到任何单元,因此 @units 不包含任何值。我原以为在@units 存在值之前不会触发查询。无论如何,在以各种方式查询工作职位之前,我尝试检查@units 的内容:
*将@units 参数替换为以下表达式:=IIF(Parameters!units.Count = 0, "00000000-0000-0000-0000-000000000000", Parameters!units.Value)
*具有另一个参数,其中包含@units 值的逗号分隔字符串,并在执行相关数据集之前检查其长度是否大于 0,等等。
但是现在,当我打开报告时,工作职位的下拉列表是空的,已禁用,并且一直保持不变,直到更改单位值或运行报告。之后他们似乎刷新了。 所以我的问题是,控件被禁用的原因可能是什么(检索单位,那么为什么作为工作职位的参数值的表达式会搞砸呢?)以及如何以正确的方式处理这个问题,不能似乎在网上找到了真正具有相同性质的东西。
任何帮助将不胜感激。
【问题讨论】:
标签: sql-server ssrs-2008