Reporting services 如何使用多iif改变颜色

Reporting services 如何使用多iif改变颜色,reporting-services,ssrs-2012,Reporting Services,Ssrs 2012,下面是文本框表达式,结果如下所示: 新玩具-旧玩具-臭名昭著 我可以让所有文本变成蓝色,但我希望“破折号”()变成黑色。 我的表达不正确。你能帮忙看看出了什么问题吗。非常感谢。 这是填充数据集的查询: SELECT STUFF((SELECT CAST(b.branch as varchar) +' '+ ' | ' +' ' FROM printers p full join branch b on p.branchid = b.branchid where p.printern

下面是文本框表达式,结果如下所示:
新玩具-旧玩具-臭名昭著
我可以让所有文本变成蓝色,但我希望“破折号”()变成黑色。
我的表达不正确。你能帮忙看看出了什么问题吗。非常感谢。

这是填充数据集的查询:

SELECT STUFF((SELECT CAST(b.branch as varchar) +' '+ ' | ' +' ' 
FROM printers p 
full join branch b on p.branchid = b.branchid 
where p.printername is null 
order by b.branch FOR XML PATH(''), TYPE).value('.', 'varchar(max)'),2,1,'');

好了,现在我明白了为什么数据会被格式化,我找到了一个适合你的解决方案。基本上,要实现这一点,您需要将数据集中的查询修改为以下内容:

SELECT CAST(ISNULL(b.branch, 'None') as varchar)
FROM printers p 
FULL JOIN branch b ON p.branchid = b.branchid WHERE p.printername IS NULL 
ORDER BY b.branch 
这将以一种方式提供
b.branch
值,它们可以在SSR中连接,每个值之间使用字体格式。它还使用
ISNULL
函数解释
NULL
值,该函数将检查每个
ID
,并在返回值时选择
NULL
值作为
None

表达式应以设置为蓝色的字体颜色开始。接下来,您需要使用两个SSRS函数,
LookupSet
将返回
字段的所有值!ID.Value
在一个数组中,我们可以使用
Join
将其放入一个字符串中<代码>连接需要连接值和分隔符,在本例中,这是正确设置文本颜色格式的机会。通过
“-”
分隔将关闭第一个
标记,该标记将使第一个
ID
变为蓝色,插入一个黑色破折号,并为下一个
ID
打开一个新的
标记,依此类推。最后,添加一个结束标记,以完成将最后的
ID
涂成蓝色

="<font color = 'blue' size = 1>" 
& Join(LookupSet(1, 1, Fields!ID.Value, "DataSet2"), "</font><font color = 'black' size = 1>-</font><font color = 'blue' size = 1>") & "</font>"
=“”
&连接(LookupSet(1,1,Fields!ID.Value,“DataSet2”),“-”&“
我已经测试过了,它似乎正常工作。但是,您需要确保在标记类型设置为HTML的占位符中使用此表达式,以将HTML标记解释为样式,这样才能工作

下面是一个示例,演示了当我将上面的表达式与较淡的颜色结合使用时,它的外观:


还是不确定你在这里要干什么。你想让仪表板一直是黑色的吗?还是仅在某些情况下?您是否希望ID字段返回破折号而不是数字?提供一些ID将返回的数据示例可能会有所帮助,这样我就可以知道您在寻找什么。是的,破折号需要黑色,其余文本需要蓝色。像这样的返回Newtoy-Oldtoy-notyto澄清,
字段!ID.Value<代码>返回<代码> NeigToal-OdgToo-NoToal-<代码>,你只想要黑色的破折号吗?此外,只有2个破折号或可能超过2条吗?DASH将在文本中间。如果输入更多的数据,可能会有更多的破折号。例如xxxxxxx-zzzzzzzz-ccccccccccccccccccccccccccccccccccccbbbbbbbbbb,末尾没有额外的破折号。让我试试something@Tsang刚刚添加了一个图像,显示了当我在一个数据集上使用这个表达式作为参考时会发生什么。我不知道你怎么知道,但你太聪明了。它工作得很好。谢谢你的帮助。我欠你一杯咖啡。
="<font color = 'blue' size = 1>" 
& Join(LookupSet(1, 1, Fields!ID.Value, "DataSet2"), "</font><font color = 'black' size = 1>-</font><font color = 'blue' size = 1>") & "</font>"