Reporting services 如果参数为null,则忽略数据集

Reporting services 如果参数为null,则忽略数据集,reporting-services,Reporting Services,我有一个由多个表/多个数据集和参数组成的报告,报告来自两个不同的服务器。其中一个参数可以设置为null,在这种情况下,我需要一起忽略特定的数据集。我现在得到了一个数据集的错误,这是因为一个空值正在传递的数据库名称,这当然不会工作。我知道我可以更改可见性,但我看不出哪里可以忽略数据集本身。我将参数设置为允许空值。您不能在报表执行期间“忽略”数据集,每次运行报表时都会执行所有数据集查询。但是,您可以在数据集查询中包含代码(如果源代码支持),这样数据集就不会基于某个参数的值返回任何行 e、 g.对于S

我有一个由多个表/多个数据集和参数组成的报告,报告来自两个不同的服务器。其中一个参数可以设置为null,在这种情况下,我需要一起忽略特定的数据集。我现在得到了一个数据集的错误,这是因为一个空值正在传递的数据库名称,这当然不会工作。我知道我可以更改可见性,但我看不出哪里可以忽略数据集本身。我将参数设置为允许空值。

您不能在报表执行期间“忽略”数据集,每次运行报表时都会执行所有数据集查询。但是,您可以在数据集查询中包含代码(如果源代码支持),这样数据集就不会基于某个参数的值返回任何行

e、 g.对于SQL Server源:

IF @SomeParameter IS NOT NULL
BEGIN
  -- this path returns some rows
  SELECT 
      Col1
    , Col2
  FROM
    SomeTable
  WHERE
    Col1 = @SomeParameter
END
ELSE
BEGIN
  -- this path does not return any rows
  SELECT 
      Col1
    , Col2
  FROM
    SomeTable
  WHERE 
    1=0   -- always false
END
您不能在报表执行期间“忽略”数据集,每次运行报表时都会执行所有数据集查询。但是,您可以在数据集查询中包含代码(如果源代码支持),这样数据集就不会基于某个参数的值返回任何行

e、 g.对于SQL Server源:

IF @SomeParameter IS NOT NULL
BEGIN
  -- this path returns some rows
  SELECT 
      Col1
    , Col2
  FROM
    SomeTable
  WHERE
    Col1 = @SomeParameter
END
ELSE
BEGIN
  -- this path does not return any rows
  SELECT 
      Col1
    , Col2
  FROM
    SomeTable
  WHERE 
    1=0   -- always false
END

在查询中写入if语句,以便代码仅在参数不为null时执行这实际上是我在阅读您的注释之前所做的。谢谢你的回复。在查询中写一个if语句,这样代码只有在参数不是null的情况下才会执行。这就是我在阅读你的评论之前所做的。谢谢你的回复。