SSRS 2008 没有通过按钮点击传递多个值来报告 运行

SSRS 2008 not passing multiple values to report run from button click

我有一个简单的查询,我是 运行 在 SSRS 2008 的报告中,这个查询只是从报告的用户那里获取一个日期和一个用户代码,这是一个简单的 md5 散列代码,基于他们的本地用户 ID。

这会将报告过滤为与所选时间段和用户相关的数据子集。该报告采用以下参数:

 select * from 
 ops
 where [Late Flag] = 'Late Start'
 and [Planned Session Start Time] >= @start
 and [Planned Session Start Time] < @end
 and [Hashed Surgeon 1 Code] IN (@UserCode)

当使用这些参数过滤此数据集然后用户希望查看图表时,问题开始出现,这同样是一个简单的按钮单击,该操作运行另一个显示图表的报告同期

我将与用户相关的所有会话的会话 ID 作为参数传递给图表报告。图表报告仅基于以下内容:

 select * from 
 ops
 where  [Session ID] in (@SessionID)

如果用户在此期间有多个会话,我希望在这里看到多个会话。但是报告只显示其中之一,即使我允许检查多个值并且我使用的是 IN,如上所示。

问题是,以前有没有人遇到过这个问题,如果有,我该怎么办,我需要查看为该特定用户选择的同一时期内的所有会话。真是令人沮丧,我想尽了一切办法,我是不是漏掉了什么?

在查看了@Lukasz Szozda 提供的建议方法后,我意识到在这种情况下对我来说最好的方法是为每个会话日期创建一个最大值和最小值,以便传递给图表报告。

这消除了对 IN 语句进行参数化的需要。显然不是每个需要将多值传递给多值但对我来说效果很好的解决方案。

我还必须声明,这仅适用于在我的设置中传递单个用户代码,如果我想在同一时期看到多个用户代码 activity,那么我需要遵循建议的方法并承诺对 IN 语句进行参数化。