0

我有 SSRS 报告数据,我们将在某些单元格中有两个不同的东西,例如: SourceDB 中的旧值

FirstName   LastName 
Robin       Son
BOB         Alice

更新数据库值:

FirstName   LastName 
Robin       S
BOB         A

经过一些更新,我们将在审核表中获得更改和新旧值,因此将像这样创建报告。

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

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

感谢您的建议或答案,甚至反馈的赞赏。

4

2 回答 2

2

如果您无法Audit按照 Ashiko 的非常明智的建议更改表格以将WasNow值保存在单独的列中,则需要在报告中解析出字符串值的相关部分。

您可以做到这一点的一种方法是通过placeholder具有基于表达式的值的 s 。在您的 SSRS 表中,将 4 placeholders 添加到基于您的Audit数据集的表中,并使用以下表达式作为它们的Labeland Value

  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:在旧值或:新值中),您将在报告中得到不需要的结果。

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

于 2019-06-10T09:12:36.657 回答
1

你试过这个吗?

  1. 选择单元格

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

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

4 选择下面的表达式

5 写为

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

于 2019-06-10T08:40:47.650 回答