SSRS - 条件文本格式(使用Switch的表达式)

时间:2013-06-12 14:24:55

标签: reporting-services properties textbox expression ssrs-expression

我将通过声明表达式在报告中起作用来打开它。问题是他们没有合作。

我目前有一个基于两列值格式化的列标题。斜体并根据Column1的值加下划线。粗体和基于Column2值的特定颜色。我是通过在文本属性中使用Switch表达式来完成此操作的。以下是我对每个人的看法:

=Switch(Fields!Column1.Value <> "Specific Value","Italic",Fields!Column1.Value = "Specific Value","Normal")
=Switch(Fields!Column1.Value <> "Specific Value","Underline",Fields!Column1.Value = "Specific Value","None")
=Switch(Fields!Column2.Value <= 7,"ExtraBold",Fields!Column2.Value >=` 8,"Normal")
=Switch(Fields!Column2.Value <= 7, "Red",Fields!Column2.Value >= 8,"#586d7f")

一张图片显示它们都标有:

enter image description here

当我运行报告时,没有错误。

奇怪的是(至少对我来说)结果应该是这样的:

  1. 正常
  2. 大胆红色
  3. 斜体和带下划线的
  4. 全部四个 (粗体,斜体,红色和下划线)
  5. 在文本应该看起来像4的情况下,它看起来像2.其他所有工作都是如此,所以我有点难过,并希望解释为什么会出现这种情况。我看看之前是否已经回答了这个问题,但根据我所看到的情况,看起来并不像。如果我使用了任何错误的术语,我道歉(我对此很新)。

1 个答案:

答案 0 :(得分:5)

我会改用IIF()语句。

=IIF(Fields!Column1.Value <> "Specific Value", "Italic", "Normal") 

一般来说,switch是多个出现的'case'语句,而IIF语句是典型的'if,then,else'语句。危险变成你可以嵌套IIF语句,比如IIF(事物,'set1',iif(thing2,'set2','default'))但是像Switch这样的东西会更容易(事物,'set1,thing2, 'set2','default')。切换的问题在于,如果一件事情发生,而另一件事件发生,则假设第一件事是真的并且只是执行该事情。因此,您必须考虑某事物发生的正确顺序,否则它将假设第一个实例。通常当你有一个东西的实例和一个默认的我使用IIF。如果交换机出现问题,我会一般做嵌套的IIF或重新排序Switch语句的事件。

我希望这有点帮助。