数据集多次使用问题

时间:2012-12-14 17:48:38

标签: ssrs-2008

我有一个从存储过程加载的数据集。它有字段。

DisplayID INT,
Display VARCHAR(45),
Default BIT

我有一个名为DisplayFields的参数,它是一个多值参数。对于可用值,我将ValueField设置为 DisplayID ,将Label字段设置为 Display 字段。

我希望默认选择是数据集中默认= 1 的每条记录。有谁知道怎么做?

编辑1

我有一个存储过程。我用来填充数据集。我添加了第二个数据集,其中包含基于 Default 字段的过滤器。我不喜欢这个解决方案,因为我相信我正在调用该存储过程两次。

1 个答案:

答案 0 :(得分:1)

如果您始终至少有一个默认值,则可以实现以下功能:

WITH TestData AS
(
    SELECT 0 AS ID, 'always default' AS Name, 1 AS IsDefaultValue
    UNION ALL
    SELECT 1 AS ID, 'test1' AS Name, 0 AS IsDefaultValue
    UNION ALL
    SELECT 2 AS ID, 'test2' AS Name, 1 AS IsDefaultValue
    UNION ALL
    SELECT 3 AS ID, 'test3' AS Name, 0 AS IsDefaultValue
    UNION ALL
    SELECT 4 AS ID, 'test4' AS Name, 1 AS IsDefaultValue
)
SELECT ID, 
       Name, 
       IsDefaultValue,
       CASE
            WHEN IsDefaultValue = 0
            THEN ID
            -- return id of always default value
            ELSE 0
       END AS DefaultID        
FROM TestData

然后在SSRS端,您应该将可用值添加为ID,默认为DefaultID。 但是我们不能在一组默认值中有一些值,这些值没有在可用值集中显示(这就是我们使用“始终默认值”的原因),在这种情况下,默认选择将不起作用,您应该调用SP两次

相关问题