如何在 SSRS 报告中以两种不同的格式格式化指定的单元格值

how to format the specified cell value in two different formats in SSRS Report

我有 SSRS 报告数据,其中一些单元格中有两种不同的东西,例如: SourceDB 中的旧值

FirstName   LastName 
Robin       Son
BOB         Alice

正在更新数据库值:

FirstName   LastName 
Robin       S
BOB         A

经过一些更新后,我们将在 Audit Table 中有更改和新旧值,因此报告将像这样创建。

FirstName LastName
Robin     was: Son now: S
BOB       Was: Allice now: A

是否可以将原值设置为红色,将现在值设置为绿色。 在最坏的情况下,如果不可能将整个单元格值变成红色。

感谢您的建议或回答,甚至欢迎反馈。

你试过吗?

  1. Select 单元格

  2. 单击 F4 打开单元格属性或右键单击属性

  3. 在字体选项卡中,Select颜色

4 Select 表达式下方

5 写成

=iif(字段!ColumnName.Value = "WAS","Red","Green")

如果您不能根据 Ashiko 的非常明智的建议更改 Audit table 以将 WasNow 值保存在单独的列中,您将需要解析报告中字符串值的相关部分。

一种方法是通过 placeholder 具有基于表达式的值。在您的 SSRS table 中,将 4 placeholder 添加到基于您的 Audit 数据集的 table,并使用以下表达式作为它们的 LabelValue:

  1. Was: - ="Was: "
  2. Old Value - =replace(left(Fields!LastName.Value,instr(Fields!LastName.Value," Now:")-1),"Was: ","")
  3. Now: - ="Now: "
  4. New Value - =mid(Fields!LastName.Value,instrrev(Fields!LastName.Value,":")+2,99999)

然后您可以像处理普通文本一样设置单个 placeholder 项目的格式,使用一种颜色,另一些使用另一种颜色。

如果你这样做正确,你应该得到这样的结果:

设计视图:

呈现:


不过请注意,如果您确实以这种方式拆分字符串值,如果您正在搜索该模式(例如:旧值中的 Now: 或旧值中的 :你的新值)你会在你的报告中得到不希望的结果。

如果这完全是出于监控目的的内部报告,这可能不是问题。但是,如果这将面向客户,我强烈建议您为 OldNew 值在 Audit table 中添加额外的列,以允许您进行绝对控制。