我在桌子上有一排作为标题行。可以使用两个diff参数显示或不显示它。到目前为止我已经
了=IIF(((InStr(join(Parameters!PRO.Value,", "),"-1") AND Parameters!ShowPro.Value="N")) ,true, false)
or
IIF(((Instr(join(Parameters!PRO.value,","),"-1") and Parameters!ShowPro.value="Y")),false,true)
基本上说如果PRO值= -1(全选)和ShowPro值=否(此参数切换列)则隐藏行或发生相反的情况。选择全部和ShowPro = Yes显示行。这样可以正常工作,就像要显示行一样,然后ReportItem PRO.value出现在这个"标题"在显示PRO.value组的每个组之间有一个分页符。
我现在尝试的是添加第三个选项,如果我不选择全部(-1)但仍想显示该行(ShowPro =" Y")然后显示在此"标题"中选择的PRO.Values。行和每个分页符。我尝试过各种形式的
IIF(not((Instr(join(Parameters!PRO.value,","),"-1") and Parameters!ShowPro.value="Y")),true,false)
我无法让它发挥作用。任何帮助非常感谢。希望我能清楚地解释清楚。
答案 0 :(得分:1)
我认为您的问题可能出现在Or逻辑中,并且您可能希望使用嵌套的iif语句。现在,您的代码分别评估两个iif语句并为每个语句返回一个布尔值(True / False)。然后该声明将简化为
= True or False
返回true或者
= False or False
返回false。在那里抛出第三个条件,你可能会结束像
这样的事情= False or True or False
仍然会评估为真,但可能不是你想要的。使用嵌套的iif语句如下所示:
=IIF(((InStr(join(Parameters!PRO.Value,", "),"-1") AND Parameters!ShowPro.Value="N")) ,true, IIF(((Instr(join(Parameters!PRO.value,","),"-1") and Parameters!ShowPro.value="Y")),false, IIF(not((Instr(join(Parameters!PRO.value,","),"-1") and Parameters!ShowPro.value="Y")),true,false)))
这将评估每个语句,如果为true,则返回指定的值。如果为false,则继续执行下一个iif并评估该语句。然后,如果最后一个iif语句为false,则返回false。您可能需要调整此答案以满足您的目的,但我认为它将解决您的问题。