如何允许SSRS中的下拉列表参数的默认值为“ - 全 - ”?

时间:2013-01-14 23:29:10

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

我有一个基于存储过程填充的下拉列表 - 部件工作正常。

enter image description here

根据“调查ID”

的内容动态填充

但我不希望它说<Select a Value>,而应该说" -- All -- ",因为这就是报告的工作方式。

到目前为止,我尝试创建一个返回Null并且标签为“all”的虚拟数据集,但它不起作用。也许我做错了?我用过这个:

select distinct  Name, ID  from LK_TargetTypes
where Name like '%pizza'
union select '-- All --', null ;

所以LK_TargetTypes是一些不相关的表格。我想将其与其他DDL值合并。

这是另一张照片:

enter image description here

任何提示都表示感谢。

5 个答案:

答案 0 :(得分:3)

通过将-- All --选项作为查询所基于的数据集的一部分返回,您正在做到这一点。

您收到了<Select a Value>消息,因为您没有选择值。您需要做的是为此参数指定默认值-- All --。打开参数设置,然后单击“默认值”选项卡并输入默认值,在这种情况下,Null-- All --

答案 1 :(得分:2)

我同意Chris的回答但是我想补充一点,有时候你想要将默认值添加到一个不是全部而不是单一选择的多值。通常我会设置两个数据集,每个数据集都在一个表变量中进行报告。与此类似:

'AvailableValues'数据集可以是:

declare @Table Table ( personID int identity, person varchar(8));

insert into @Table values ('Brett'),('John'),('Peter');

select *
from @Table

'DefaultValues'数据集可以是:

declare @Table Table ( personID int identity, person varchar(8));

insert into @Table values ('Brett'),('John');

select *
from @Table

如果我设置了一个参数并将'Available'值绑定到'从查询中获取值'并选择我的可用数据集,则它具有第一个集合。如果我然后选择“默认”值并选择“从查询中获取值”并选择默认值我可以选择一个子集作为默认值。唯一的问题是您必须确保第二个数据源是第一个的合法子集。

您也可以从设置中选择默认值以获取所有值的列表,以选择您指定的所有值。

答案 2 :(得分:1)

出于某种原因,我让它工作的唯一方法是改变存储过程本身;并加入

UNION SELECT null, ' -- All -- ' 

看起来当您使用查询填充下拉参数时,向参数添加非查询值/标签并不容易。

我知道可能还有另一种方式。但是因为这个工作我觉得没问题

答案 3 :(得分:1)

如果在参数的弹出菜单中选择“允许多个值”(单击“参数”文件夹左侧的参数),它将显示“全选”选项。

答案 4 :(得分:0)

从上面您会想出了使用“全选”将全选添加到数据集查询的方法。

现在选择“ ALL”作为默认值,上面已正确提及将其设置为特定值Null无效; 取而代之的是,我使用特定的查询,并使用与填充下拉列表参数相同的数据集来工作。

注意:我的数据集升序排列, ___ ALL __ 排在最前面,值为Null。