2015-12-16 45 views
0

我必须基于表达式显示一个值,即如果列值= 1打印Y,如果值= 0打印N如果值=''打印N和值= NULL打印N在列上。处理多个值以在SSRS中显示一个值

我尝试下面的代码

=IIF(IsNothing(Fields!MyColumnName.Value),"N",IIF(Fields!MyColumnName.Value=1,"Y","N"))

但这不是工作在列中的NULL值和空值。

在此先感谢... !!

+0

什么是你的数据集返回,字符串或整数?你能分享一个示例数据集,因为我无法重新创建问题 - 上面的表达式适用于整数(和空值) – Jonnus

+0

它返回整数,我的列返回值0,1,但在某些情况下,列为空。对于值1,我希望显示“Y”为0“N”,对于NULL或空白我想显示“N” – user2728106

+0

为什么它“无效”为null或空白。它在做什么呢? – Jonnus

回答

0

您的问题来自SSRS在执行之前评估表达式的所有可能路径的事实。因此,当它试图比较''的整数1失败,报告#Error

为了防止这一点,你可以换你的领域在CSTR(转换为字符串),给人的表达

=IIF(IsNothing(Fields!MyColumnName.Value), 
    "N", 
    IIF(CStr(Fields!MyColumnName.Value)=CStr(1), 
     "Y", 
     "N" 
    ) 
) 

下面的示例示出了用于myColumnName的值,与当前的表达的结果,其评估值的描述,然后在最后一列

enter image description here

上述表达式的结果

希望这会帮助你。如果您需要进一步帮助,或者对此有更多疑问,请告知我们。

+0

是的它可以工作。感谢Jonnus。 – user2728106