我有一个从存储过程加载的数据集。它有字段。
DisplayID INT,
Display VARCHAR(45),
Default BIT
我有一个名为DisplayFields的参数,它是一个多值参数。对于可用值,我将ValueField设置为 DisplayID ,将Label字段设置为 Display 字段。
我希望默认选择是数据集中默认= 1 的每条记录。有谁知道怎么做?
编辑1
我有一个存储过程。我用来填充数据集。我添加了第二个数据集,其中包含基于 Default 字段的过滤器。我不喜欢这个解决方案,因为我相信我正在调用该存储过程两次。
答案 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两次