【问题标题】:Expression to change specific value text color in string of values in SSRS based on another field根据另一个字段更改SSRS中值字符串中特定值文本颜色的表达式
【发布时间】:2011-03-20 07:44:17
【问题描述】:

我的 SSRS 报告中有一个字段,其中包含一串用逗号分隔的数字(来自 SQL 中的合并选择)。它看起来像 12、91、160、171、223。我想更改字段中只有一个特定值(例如 160)的文本颜色,如果该值也在报告的另一个字段中。

我已经有了这个用于字段属性字体的表达式。

=iif(Fields!Store_Number.Value.ToString().Contains (Fields!DMHomeStore.Value)= True,"Red","Black")

这会更改整个字段的文本颜色,而不仅仅是字符串中的那个 ONE 值。

基本上,如果DMHomeStore = 160,并且Store_Number 的字符串中有 160,则在 Store_Number 字符串中只设置 160 红色。

【问题讨论】:

    标签: fonts colors expression ssrs-2008


    【解决方案1】:

    这当然可以做到,而且不难做到。

    1. 从一个空的表格单元格开始。
    2. 双击单元格->右键单击->创建占位符
    3. 在常规选项卡上,值 -> 选择将包含数字字符串的字段
    4. 在同一常规选项卡上,选择“HTML,将 HTML 标记解释为样式
    5. 点击确定

    这是第一步。现在,我们需要做的就是设置一个表达式来查找有问题的字符串,然后用 HTML 代码替换它以使其变为红色。

    1. 右键单击单元格 -> 选择表达式
    2. 输入以下表达式:
    =Replace(Fields!Store_Number.Value.ToString(),Fields!DMHomeStore.Value," `<span style='color:red'>` " & Fields!DMHomeStore.Value & "`</span>`")
    

    运行您的报告,只有相关字符串为红色,单元格中的所有其他文本均为黑色。如果未找到相关字符串,则所有其他文本将为黑色。

    【讨论】:

    • 我不确定我是否在这里遗漏了什么,但我仍然将整个字符串显示为红色,而不仅仅是 160 值。我彻底清除了牢房并从头开始。创建占位符并在占位符中选择字段 Store_Number。然后选择“HTML,将 HTML 标记解释为样式”。我还确保占位符“字体”属性仍然具有表达式 =iif(Fields!Store_Number.Value.ToString().Contains (Fields!DMHomeStore.Value)= True,"Red","Black") 然后做了第二步添加你给我的 =Replace 表达式。
    • 从字体属性中去掉表达式。您不想在两个地方设置颜色。
    • 好的,试过了,但现在我只是把整行变成黑色。如果没有那个 iif 表达式,什么应该使文本变红?对不起...我从来不擅长使用表达式。
    • 我也应该添加 HTML 代码吗?如果有,在哪里?再次感谢!
    • 你是对的。我只是注意到我的 HTML 没有被显示。它在我的解决方案中,但该站点未在显示的答案中显示我的 HTML 标记。我放了一些“虚拟”空格,现在标签显示正确。只要确保清理标签,你就可以开始了。
    【解决方案2】:

    SSRS 不会呈现所有 html 标签,例如样式将从 span 标签中删除。这是一个很好的参考http://dinesql.blogspot.com/2010/05/reporting-services-2008-showing-html.html

    【讨论】: