Reporting services SSRS2005:如何编写IIF语句来检查值是否在参数列表中

Reporting services SSRS2005:如何编写IIF语句来检查值是否在参数列表中,reporting-services,parameters,iif,Reporting Services,Parameters,Iif,在SSRS2005中,我试图设置一个表达式来返回true或false,这取决于报表运行时用户从列表中选择的一个(可能是多个)报表项的值是否在列表中 以下是迄今为止的表达: =iif(Trim(ReportItems!Category_2.Value) = Trim(Parameters!Category.Value(0)), False, True) 您可以看到表达式中的True和False是相反的-这是因为它用于控制行的“Hidden”属性,并且我不想隐藏值在列表中的行 当为参数选择单个值时

在SSRS2005中,我试图设置一个表达式来返回true或false,这取决于报表运行时用户从列表中选择的一个(可能是多个)报表项的值是否在列表中

以下是迄今为止的表达:

=iif(Trim(ReportItems!Category_2.Value) = Trim(Parameters!Category.Value(0)), False, True)
您可以看到表达式中的True和False是相反的-这是因为它用于控制行的“Hidden”属性,并且我不想隐藏值在列表中的行

当为参数选择单个值时,表达式工作正常,但对于多个值,它仅显示第一个值的结果

希望你能帮忙

尝试使用

=iif(Trim(ReportItems!Category_2.Value) = Trim(Parameters!Category.Value), False, True)

非常感谢你的帮助。这些多个值确实困扰着我,我从未设法让Trim正常工作,因此我最终使用了以下两个阶段的解决方案:

(1) 在SQL“SELECT”语句中,我定义了一个名为“InCategory”的新值,根据类别是否为输入的类别之一为其赋值1或0:

CASE WHEN Category IN (@Category) THEN 1 ELSE 0 END AS 'InCategory', 
(2) 然后在SSRS中,我对报告中“隐藏”的表达式变得简单,如果该行的“InCategory”之和为0,则隐藏该行:

=iif((Sum(Fields!InCategory.Value) = 0), True, False)
再次感谢您的帮助-我非常感谢,并将再次使用此网站

在表达式中,Trim(Parameters!Category.Value(0)是在多值参数中传递的第一个参数。请尝试使用Join()函数或LookupSet获取所有参数。