我用谷歌搜索了很多,发现通常无法完成。我在这里遇到了其中一个黑客:
http://www.bp-msbi.com/2011/04/ssrs-cascading-parameters-refresh-solved/
但它在 ssrs 2005 中对我不起作用。只是想知道是否有人在 2005 年尝试过它。或者是否有任何其他可以尝试的黑客。
根据本文,依赖参数仅在其值被第一个参数中的选择无效时才会刷新。如果我们可以在每次参数更改时使相关参数无效,我们将强制执行完全刷新。一种简单的方法是附加一个值,例如使用 NEWID() T-SQL 函数获得的 GUID。
所以基本上我们想在两个真实参数之间引入一个假参数。这个假参数应该每次都返回新值,因为它后面的存储过程会在每次调用 proc 时向结果集添加一个 guid。所以它强制完全刷新其他参数。
现在我面临的主要问题是:
设置此假参数的默认值。对于可用值,伪参数后面的存储过程会运行,并以以下格式返回数据:result1,result2_GUIDFROMSQL
现在看起来如果我要求它从查询中获取默认值,则再次调用相同的存储过程来设置默认值。但是随着存储过程再次运行,新的 guid 来了,因此无法找到旧值,因此它没有按需要设置。
我只需要找出一种机制来将这个 guid 从引入的参数传递到下一个参数。
那就是我失败的地方。
我的问题可以通过创建一个数据源是这个查询字符串的参数来简单地复制。
select getdate() id, @name nid
所以在这种情况下如何为这个参数设置一个默认值。