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