我有一个基于存储过程填充的下拉列表 - 部件工作正常。
根据“调查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值合并。
这是另一张照片:
任何提示都表示感谢。
答案 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。