Ssrs 2008 数据集多用途问题

Ssrs 2008 数据集多用途问题,ssrs-2008,Ssrs 2008,我有一个从存储过程加载的数据集。它有田野 DisplayID INT, Display VARCHAR(45), Default BIT 我有一个名为DisplayFields的参数,它是一个多值参数。对于可用值,我将ValueField设置为DisplayID,将Label字段设置为Display字段 我希望默认选择是数据集中默认值为1的每条记录。有人知道怎么做吗 编辑1 我有一个存储过程。我用来填充数据集的。我添加了第二个数据集,其中包含基于默认字段的过滤器。我不喜欢此解决方案,因为我相信

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

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

我希望默认选择是数据集中默认值为1的每条记录。有人知道怎么做吗

编辑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两次。

因此,当生成参数的可用值时,您第一次调用存储过程,即基于“默认值”的过滤器领域您第二次调用存储过程的确切时间是什么时候?两个数据集都有用于填充它们的相同存储过程。第二个上面有一个过滤器。在我看来,存储过程的两种用途都是它的独特用途。我不知道SSRS是否足够聪明,不会做已经做过的数据提取。