Show/Hide 来自参数的行可见性
Show/Hide row visability from parameter
我在 table 上有一行作为 header 行。可以使用两个 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(select 全部)并且 ShowPro 值 = 否(此参数切换列)然后隐藏行或相反的情况发生。 Select 全部和 ShowPro = 是显示行。这按预期工作,就好像要显示该行,然后 ReportItem PRO.value 出现在此 "header" 行中,并且显示该组 PRO.value.[=13= 的每个组之间有一个分页符]
我现在尝试的是添加第三个选项,如果我不 select 全部 (-1) 但仍想显示该行 (ShowPro = "Y") 然后显示PRO.Values select 在此 "header" 行和每个分页符中编辑。我试过各种形式的
IIF(not((Instr(join(Parameters!PRO.value,","),"-1") and Parameters!ShowPro.value="Y")),true,false)
我就是无法让它工作。非常感谢任何帮助。希望我解释清楚了。
我认为您的问题可能出在正在发生的 Or 逻辑中,您可能希望改用嵌套的 iif 语句。现在,您的代码正在分别评估两个 iif 语句,并为每个语句 returning 一个布尔值 (True/False)。然后该语句将简化为
= True or False
哪个 return 是正确的或者也许
= False or False
其中 return 是错误的。在那里加上第三个条件,你可能会得到类似
的结果
= False or True or False
这仍然会评估为 true,但可能不是您要查找的内容。使用嵌套的 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)))
这会评估每个语句,如果为真,returns 指定的值。如果为假,则继续执行下一个 iif 并评估该语句。然后,如果最后一个 iif 语句为假,它将 return 为假。您可能需要调整此答案以满足您的目的,但我认为它会解决您的问题。
我在 table 上有一行作为 header 行。可以使用两个 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(select 全部)并且 ShowPro 值 = 否(此参数切换列)然后隐藏行或相反的情况发生。 Select 全部和 ShowPro = 是显示行。这按预期工作,就好像要显示该行,然后 ReportItem PRO.value 出现在此 "header" 行中,并且显示该组 PRO.value.[=13= 的每个组之间有一个分页符]
我现在尝试的是添加第三个选项,如果我不 select 全部 (-1) 但仍想显示该行 (ShowPro = "Y") 然后显示PRO.Values select 在此 "header" 行和每个分页符中编辑。我试过各种形式的
IIF(not((Instr(join(Parameters!PRO.value,","),"-1") and Parameters!ShowPro.value="Y")),true,false)
我就是无法让它工作。非常感谢任何帮助。希望我解释清楚了。
我认为您的问题可能出在正在发生的 Or 逻辑中,您可能希望改用嵌套的 iif 语句。现在,您的代码正在分别评估两个 iif 语句,并为每个语句 returning 一个布尔值 (True/False)。然后该语句将简化为
= True or False
哪个 return 是正确的或者也许
= False or False
其中 return 是错误的。在那里加上第三个条件,你可能会得到类似
的结果= False or True or False
这仍然会评估为 true,但可能不是您要查找的内容。使用嵌套的 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)))
这会评估每个语句,如果为真,returns 指定的值。如果为假,则继续执行下一个 iif 并评估该语句。然后,如果最后一个 iif 语句为假,它将 return 为假。您可能需要调整此答案以满足您的目的,但我认为它会解决您的问题。