我将首先说明这些表达式在报告中确实有效。问题是他们没有一起工作。
我目前有一个基于两列值格式化的列标题。根据 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")
还有一张图片显示它们都已标记:
当我运行报告时没有错误。
奇怪的是(至少对我来说)结果应该是这样的:
- Normal
- 粗体和红色
- 斜体和下划线
-
All four(粗体、斜体、红色、下划线)
在文本应该看起来像 4 的情况下,它看起来像 2。其他一切都按预期工作,所以我有点困惑,想要解释为什么会出现这种情况。我想看看以前是否已经回答过这个问题,但根据我所看到的,似乎没有。如果我使用了任何错误的术语,我深表歉意(我对此还很陌生)。
我会使用 IIF() 语句来代替。
=IIF(Fields!Column1.Value <> "Specific Value", "Italic", "Normal")
一般来说,switch 是多次出现的“case”语句,而 IIF 语句是典型的“if、then、else”语句。危险在于您可以嵌套 IIF 语句,例如 IIF(thing, 'set1', iif(thing2, 'set2', 'default')) 但执行像 Switch(thing, 'set1, thing2, '设置2','默认')。开关的问题是,如果一件事和另一件事同时发生,它会假设第一个为真,然后执行该操作。因此,您必须考虑某些事情发生的正确顺序,否则它将假设第一个实例。通常,当您有某个实例和默认值时,我使用 IIF。如果 switch 有问题,我通常会执行嵌套 IIF 或重新排序 Switch 语句的事件。
我希望这能有所帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)