【问题标题】:SSRS 2008 not passing multiple values to report run from button clickSSRS 2008 未传递多个值以报告从按钮单击运行
【发布时间】:2018-06-11 08:17:17
【问题描述】:

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

这会将报告过滤到与所选期间和用户相关的数据子集。此报告采用以下参数:

 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。

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

【问题讨论】:

标签: sql sql-server reporting-services ssrs-2008


【解决方案1】:

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

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

我还必须声明,这仅适用于在我的设置中传递一个 userCode,如果我想在同一时期查看多个 UserCode 活动,那么我需要遵循建议的方法并承诺参数化 IN声明。

【讨论】:

    猜你喜欢
    • 2016-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    相关资源
    最近更新 更多