如果布尔参数计数大于 SQL Server 报表查看器中的某个数量,则显示列



我想在 MSSQL 报告中显示一列,如果 4 个布尔报表参数中有 2 个以上为真。 下面是我尝试为此条件创建可见性表达式,但它会导致错误。任何建议将不胜感激。

=IIF(COUNT(IIF(Parameters!HideQuantityOnHand.Value = "False" OR Parameters!HideQuantityOnOrder.Value = "False" OR Parameters!HideCostPerItem.Value = "False" OR Parameters!HideRetailPerItem.Value = "False")) < 3, true)
由于

语句中的OR,您无法Count。只是看起来不对劲。 所以你只需要 1 是 false ,假设其他的都是true的。看看这是否适合您。

已更新 查看这是否是您想要的。我想我得到了所有的组合。

            =IIF((Parameters!HideQuantityOnHand.Value = "False" AND Parameters!HideQuantityOnOrder.Value = "False") OR 
            (Parameters!HideQuantityOnHand.Value = "False" AND Parameters!HideCostPerItem.Value = "False") OR 
         (Parameters!HideQuantityOnHand.Value = "False" AND Parameters!HideRetailPerItem.Value = "False")
        OR (Parameters!HideQuantityOnOrder.Value = "False" AND Parameters!HideCostPerItem.Value = "False") OR
     (Parameters!HideQuantityOnOrder.Value AND Parameters!HideRetailPerItem.Value = "False") OR
(Parameters!HideCostPerItem.Value = "False" AND Parameters!HideRetailPerItem.Value = "False") , true, false)
我认为

这就是你所追求的。

=(
    IIF(Parameters!HideQuantityOnHand.Value ,1,0) + 
    IIF(Parameters!HideQuantityOnOrder.Value ,1,0) + 
    IIF(Parameters!HideCostPerItem.Value ,1,0) + 
    IIF(Parameters!HideRetailPerItem.Value ,1,0) 
    ) < 3

基本上,我们评估每个参数并将 true 转换为 1,然后我们对所有值求和并检查它们是否<3,在这种情况下,我们将 True 返回给隐藏属性(因此它不可见(。

如下面的示例所示,我发现我必须将三个参数与 AND 连接起来,然后为表达式中的可见性指定 true 或 false,然后为表达式比较指定 IIF。 见下文。

=IIf(Parameters!HideQuantityOnHand.Value="False" AND
Parameters!HideQuantityOnOrder.Value="False" AND
Parameters!HideRetailPerItem.Value="False" AND
Parameters!HideCostPerItem.Value="False",true,
IIf(Parameters!HideQuantityOnOrder.Value="False" AND
Parameters!HideCostPerItem.Value="False",true,
IIf(Parameters!HideCostPerItem.Value="False" AND
Parameters!HideQuantityOnHand.Value="False",true,
IIf(Parameters!HideRetailPerItem.Value="False" 
AND Parameters!HideQuantityOnHand.Value="False",true,false))))

最新更新