Reporting services 如何有时在SQL Report Services上的tablix中应用过滤器,有时在don';T
我正在用VisualStudio做一份报告,我是这类报告的新手。我有一个参数(StringID),在它的属性中我允许多个值。我还有一个带有以下过滤器的tablix: 表达式:[@ExternalID]-运算符:在--值中:[@StringID] 它工作得很好,但我也希望允许用户选择所有注册表(即,不按StringID筛选),如果此字段为空,则显示所有外部ID为空的注册表,这不是我想要的。因此,问题是:Reporting services 如何有时在SQL Report Services上的tablix中应用过滤器,有时在don';T,reporting-services,filter,optional,ssrs-tablix,Reporting Services,Filter,Optional,Ssrs Tablix,我正在用VisualStudio做一份报告,我是这类报告的新手。我有一个参数(StringID),在它的属性中我允许多个值。我还有一个带有以下过滤器的tablix: 表达式:[@ExternalID]-运算符:在--值中:[@StringID] 它工作得很好,但我也希望允许用户选择所有注册表(即,不按StringID筛选),如果此字段为空,则显示所有外部ID为空的注册表,这不是我想要的。因此,问题是: 我可以有一个可选的过滤器或具有此功能的东西吗 最简单的解决方案可能是修改查询以根据参数值进行选
我可以有一个可选的过滤器或具有此功能的东西吗 最简单的解决方案可能是修改查询以根据参数值进行选择-类似于:
...
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, '') = ''
)
...
您正在访问SQL数据源吗?如果是,您在Tablix中而不是在查询中进行筛选是否有原因?因为我不知道如何选择性地对查询进行筛选。我的意思是,我怎么能有时用“where”,有时不用?