0

我正在用 Visual Studio 做一份报告,我是这类报告的新手。我有一个参数(StringID),在它的属性中我允许多个值。我还有一个带有以下过滤器的 tablix:

表达式:[@ExternalID] --运算符:In --:[@StringID]

它运作良好,但我还希望允许用户选择所有注册表(即,不按 StringID 过滤),如果此字段为空,则显示所有 ExternalID 为空的注册表,这不是我想要的。所以问题是:

我可以有一个可选的过滤器或具有此功能的东西吗?

4

2 回答 2

1

最简单的解决方案可能是修改查询以根据参数的值进行选择 - 例如:

...
and (ExternalID in @StringID or @StringID = '')
...
于 2011-08-30T12:05:02.363 回答
1

我同意马克。

更进一步 - 您可能需要更改查询以涵盖以下情况:所有 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, '') = '' 
    )
...
于 2011-09-05T03:47:15.823 回答