reporting-services - 如何使用多个 iif 更改颜色
问题描述
我在下面有文本框表达式,结果如下所示:
Newtoy - Oldtoy - Notoy
我可以让所有文本变为蓝色,但我希望“破折号”(-)变为黑色。
我的表达不正确。你能帮忙看看哪里出了问题。谢谢你。
="font color = 'blue' size = '1'"
& iif(First(Fields!ID.Value, "DataSet2") = " " ,"None", First(Fields!ID.Value, "DataSet2"))+ "/font",
= iif(First(Fields!ID.Value, "DataSet2") = "-" ,"black", "blue",
这是填充数据集的查询:
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
一种可以将它们连接到 SSRS 中的方式提供这些值,并且在每个值之间使用字体格式。它还使用函数计算NULL
值,该ISNULL
函数将检查每个值并在返回值时ID
选择值。NULL
None
表达式应以设置为蓝色的字体颜色开始。接下来,您需要使用两个 SSRS 函数,LookupSet
将返回数组中的所有值Fields!ID.Value
,我们可以将其放入一个字符串中Join
。 Join
需要加入值和分隔符,在这种情况下,这是您正确格式化文本颜色的机会。定界 by"</font><font color = 'black' size = 1>-</font><font color = 'blue' size = 1>"
将关闭第一个<font>
标签,该标签应该使第一个ID
蓝色,插入一个黑色破折号,并<font>
为下一个打开一个新标签ID
,依此类推。最后,您添加一个结束</font>
标记以完成将决赛染成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>"
我已经对此进行了测试,它似乎可以正常工作。但是,您需要确保在标记类型设置为 HTML 的占位符中使用此表达式,以将 HTML 标记解释为样式以使其正常工作。
下面是一个示例,说明当我使用上面的表达式和较浅的颜色来演示时它的外观:
推荐阅读
- google-maps - 谷歌地图快照归属地
- php - 我的网址按预期转到 ?error=none 但没有任何内容插入我的数据库?
- python-3.x - 创建新 blob 时使用 create_blob_from_bytes 方法。获取错误:指定的 blob 不存在。错误代码:未找到 Blob
- sql - Oracle SQL Developer 中是否有等效于禁用相关外键选项的 SQL 查询
- c# - 在 ComboBox 上显示所有进程
- google-cloud-platform - 如果目标表不是每日分区的,Bigquery 数据传输失败
- visual-studio-code - 错误:命令失败:C:\WINDOWS\System32\wslconfig.exe /list
- c# - VS2019 Typescript Intellisense 用于 cshtml 视图中的自定义 HtmlElement
- soap - 读取 OBIEE 实例配置文件
- c# - 如何结合 byte[] 和 ushort 枚举