7

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

在此处输入图像描述

它会根据“调查 ID”的任何内容动态填充

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

到目前为止,我试图创建一个返回的虚拟数据集Null和“全部”的标签,但它没有用。也许我做错了?我用这个:

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

LK_TargetTypes一些不相​​关的表也是如此。我想将它与其他 DDL 值合并。

这是另一张图片:

在此处输入图像描述

任何提示表示感谢。

4

5 回答 5

3

-- All --通过将选项作为查询所基于的数据集的一部分返回,您做得对。

您收到<Select a Value>消息是因为,您还没有选择一个值。您需要做的是-- All --为此参数分配默认值。打开参数设置并单击默认值选项卡并输入默认值,在本例中Null-- All --.

于 2013-01-14T23:56:43.663 回答
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

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

您也可以从一组中选择默认值以获取所有列表以及选择您指定的所有值。

于 2013-01-15T00:28:15.830 回答
1

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

UNION SELECT null, ' -- All -- ' 

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

我知道可能还有另一种方式。但既然这行得通,我想它还可以

于 2013-01-15T01:55:20.903 回答
1

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

于 2013-04-01T15:03:29.743 回答
1

从上面您会发现使用 Union 将 Select All 添加到您的数据集查询中。

现在选择“ALL”作为默认值,上面正确提到将其设置为特定值 Null 将不起作用;相反,我使用了特定的查询并使用了我用来填充下拉参数的相同数据集并且它有效。

注意:我的数据集按升序排序,____ALL__排在首位,值为 Null。

于 2019-05-02T11:31:27.180 回答