select全部作为多值参数的默认值

我在Visual Studio 2008中创build了一个有很多多值参数的报表,它工作的很好,但是我希望在报表打开时有“(全选)”选项作为默认值。

是否有某种expression式或SQL代码可用于实现此目的? 还是每次我都需要select“(全部select)”,在每个参数中,每次我想运行报告?

尝试设置参数的“默认值”以使用与“可用值”相同的查询。 实际上,它提供每一个“可用值”作为“默认值”,并且“全选”选项被自动检查。

使用具有默认值的数据集是一种方法,但是您必须使用“可用值”和“默认值”的查询,如果在“可用值”选项卡中对值进行了硬编码,则必须将默认值定义为expression式。 图片应该解释一切

创build参数(如果不是自动创build的)

创建参数

定义值 – 错误的方式例子

定义值 - 错误的方式

定义值 – 正确的方法示例

定义值 - 正确的方法

设置默认值 – 您必须定义所有默认值反映可用值,默认情况下,“全选”,如果你不会定义全部只有定义将默认select。

设置默认值

结果

结果

数据types的一张图片:Int

数据类型为Int的一张图片

如果您有空值,则不起作用。

你可以通过修改你的select语句把东西变成空值来解决这个问题:

phonenumber = CASE WHEN (isnull(phonenumber, '')='') THEN '(blank)' ELSE phonenumber END 

接受的答案是正确的 ,但不完整 。 为了将“全Select All设置为默认选项,“可用值”数据集必须至less包含2列:值和标签。 他们可以返回相同的数据,但是他们的名字必须不同。 默认值数据集将使用值列,然后Select All将是默认值。 如果数据集只返回1列,则在参数的下拉列表中只会select最后一个logging的值。

添加到E_8的答案。
如果您有空string,这不起作用。

您可以通过修改SQL中的select语句或修改SSRS数据集中的查询来解决此问题。

  Select distinct phonenumber from YourTable where phonenumber <> '' Order by Phonenumber 

它效果更好

 CREATE TABLE [dbo].[T_Status]( [Status] [nvarchar](20) NULL ) ON [PRIMARY] GO INSERT [dbo].[T_Status] ([Status]) VALUES (N'Active') GO INSERT [dbo].[T_Status] ([Status]) VALUES (N'notActive') GO INSERT [dbo].[T_Status] ([Status]) VALUES (N'Active') GO DECLARE @GetStatus nvarchar(20) = null --DECLARE @GetStatus nvarchar(20) = 'Active' SELECT [Status] FROM [T_Status] WHERE [Status] = CASE WHEN (isnull(@GetStatus, '')='') THEN [Status] ELSE @GetStatus END 

通过使用像这样的文本查询来创build数据集,这是相当容易实现的:

 SELECT 'Item1' UNION SELECT 'Item2' UNION SELECT 'Item3' UNION SELECT 'Item4' UNION SELECT 'ItemN' 

查询应该返回可以select的所有项目。