我正在用 Visual Studio 做一份报告,我是这类报告的新手。我有一个参数(StringID),在它的属性中我允许多个值。我还有一个带有以下过滤器的 tablix:
表达式:[@ExternalID] --运算符:In --值:[@StringID]
它运作良好,但我还希望允许用户选择所有注册表(即,不按 StringID 过滤),如果此字段为空,则显示所有 ExternalID 为空的注册表,这不是我想要的。所以问题是:
我可以有一个可选的过滤器或具有此功能的东西吗?
我正在用 Visual Studio 做一份报告,我是这类报告的新手。我有一个参数(StringID),在它的属性中我允许多个值。我还有一个带有以下过滤器的 tablix:
表达式:[@ExternalID] --运算符:In --值:[@StringID]
它运作良好,但我还希望允许用户选择所有注册表(即,不按 StringID 过滤),如果此字段为空,则显示所有 ExternalID 为空的注册表,这不是我想要的。所以问题是:
我可以有一个可选的过滤器或具有此功能的东西吗?
最简单的解决方案可能是修改查询以根据参数的值进行选择 - 例如:
...
and (ExternalID in @StringID or @StringID = '')
...
我同意马克。
更进一步 - 您可能需要更改查询以涵盖以下情况:所有 ExternalID、ExternalID 在传递的@StringID 中,或者 ExternalID 为空。获得空的一种方法是使用不在数据中的“神奇值”,例如:
...
AND (
--get all
@StringID IS NULL OR
--get in passed string
ExternalID IN @StringID OR
--"magic value" - get empty "ExternalID"
(
@StringID = '_EMPTY_' AND
ISNULL(ExternalID, '') = ''
)
...