过滤数据集上的值或任何值

时间:2013-03-19 11:20:43

标签: reporting-services filter dataset

我有一个包含大量记录的数据集。我想在@Ptype或PType =''

中包含所有那些PType的记录
YEARMONTH --|-- PTYPE --|-- VALUE
201207 --|-- bike --|-- 600
201208 --|-- moped --|-- 0
201209 --|-- '' --|-- 0
201210 --|-- bike --|-- 600
201211 --|-- '' --|-- 0
201212 --|-- car--|-- 1200

使用参数过滤。过滤发生在报告中对共享数据集的引用;

Expression:PType
Operator: in 
Value: @Ptype 

现在@PType包含('bike','moped')

我得到了这个结果集:

YEARMONTH --|-- PTYPE --|-- VALUE
201207 --|-- bike --|-- 600
201208 --|-- moped --|-- 0
201210 --|-- bike --|-- 600

但我想要

YEARMONTH --|-- PTYPE --|-- VALUE
201207 --|-- bike --|-- 600
201208 --|-- moped --|-- 0
201209 --|-- '' --|-- 0
201210 --|-- bike --|-- 600
201211 --|-- '' --|-- 0

所以我还希望看到那些Ptype为Empty / NULL / Nothing的记录。 这可能吗?

若然,怎么样?

1 个答案:

答案 0 :(得分:5)

您可以将过滤器表达式设置为:

=IIf(IsNothing(Fields!PTYPE.Value)
      or Fields!PTYPE.Value = ""
      or InStr(Join(Parameters!PType.Value, ","), Fields!PTYPE.Value) > 0
    , true
    , false)

将其设置为布尔过滤器,以显示表达式= true

的时间

这将检查多值参数中是否存在该字段,但还包括NULL值和空字符串值。

对我来说工作正常:

enter image description here