SSRS IIF表达

时间:2016-10-07 14:46:46

标签: reporting-services ssrs-2008 ssrs-2008-r2 ssrs-tablix

在我的SSRS报告中,当连续的PolStockCode为空或空字符串时,我希望我的查询中的PolDiscountPerc文本框变为空白,但是如果PolStockCode包含值,则格式化PolDiscountPerc文本框以将其显示为百分比。

abstract class Animal
{
    public string Name { get; set; }
    public Animal(string name)
    {
        Name = name;
    }
}
class Dog : Animal
{
    public Dog(string name)
        : base(name)
    {

    }
}
class Cat : Animal
{
    public Cat(string name)
        : base(name)
    {

    }
}
abstract class Furniture
{
    public int Height { get; set; }
    public Furniture(int height)
    {
        Height = height;
    }
}
class Chair : Furniture
{
    public Chair(int height)
        : base(height)
    {

    }
}
class TallDog : Animal
{
    public int Height { get; set; }
    public TallDog(string name, int height)
        : base(name)
    {
        Height = height;
    }
}

以下查询的问题在于,它或者不执行任何操作,或者为表中的每一行将文本框设置为空白,尽管它们中的大多数都包含PolStockCode。我哪里出错?

3 个答案:

答案 0 :(得分:0)

is只能用于与nothing进行比较。你需要使用=

=IIF(IsNothing(Fields!PolStockCode.Value) or Fields!PolStockCode.Value = "", "",(Format(Fields!PolDiscountPerc.Value, "0.00") & "%"))

答案 1 :(得分:0)

您可以将is移至=并将表达式设为单个()来尝试。

=IIF
(
  (IsNothing(Fields!PolStockCode.Value) or Fields!PolStockCode.Value = "")
  , ""
  ,(Format(Fields!PolDiscountPerc.Value, "0.00") & "%")
)

或者您可以在外部格式化百分比:

=IIF
(
  (IsNothing(Fields!PolStockCode.Value) or Fields!PolStockCode.Value = "")
  , ""
  ,Fields!PolDiscountPerc.Value)
)

enter image description here

答案 2 :(得分:0)

我完全忘记了这是数据库中的nchar字段,它不会是一个空字符串。

因此这解决了我的问题

=IIF((IsNothing(Fields!PolPMStockCode.Value) or Len(Trim(Fields!PolPMStockCode.Value)) = 0), "", Fields!PolDiscountPerc.Value)