如何使用涉及字段和参数的 OR 条件编写 SSRS 表达式



我有一组 Tablix 结果,我试图根据 OR 条件进行过滤,但我很难将两者组合成一个自定义表达式。[IsSafetyObservation] 只是一个布尔字段,[Department] 需要成为 [@Department] 的多选参数值的一部分。这是它看起来像两个单独的过滤器的屏幕截图,但这是执行 AND 条件。当我尝试编写自定义表达式时,我没有使用写入语法,因为当我尝试引用 @Department 参数时,我得到一条红线

Tablix 筛选器屏幕截图 自定义表达式尝试

您需要在尝试时将表达式组合成一个表达式,但不应使用 IN,而应使用InStr。InStr 在另一个字符串中搜索一个字符串,如果未找到,则返回位置或 0。

首先,您需要使用 JOIN 将参数合并到一个字符串中。

JOIN(Parameters!Department.Value, ",")

这会将您的参数合并到一个字符串中,您现在可以在部门参数中搜索部门字段。

InStr(JOIN(Parameters!Department.Value, ","), Fields!Department.Value) > 0

此外,SSRS 并不总是适用于布尔值 (呃) - 因此= (1 = 1)的表达式可能在某些地方适用于布尔结果,但在其他地方则不适用,因此最好指定:

=IIF(InStr(JOIN(Parameters!Department.Value, ","), Fields!Department.Value) > 0 
OR Fields!IsSafetyObservation.Value = False, 
True,
False)

最新更新