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

时间:2019-06-10 08:25:47

标签: sql-server reporting-services ssrs-2008 ssrs-2012 sqlreportingservice

我有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值设置为绿色。 在最坏的情况下,如果不可能将整个单元格值变成红色。

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

2 个答案:

答案 0 :(得分:2)

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

您可以执行此操作的一种方法是通过具有基于表达式的值的placeholder。在您的SSRS表中,向基于placeholder数据集的表中添加4个Audit,并使用以下表达式作为其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:或新值中的:值),您的报告中将得到不良结果。

如果这是出于监视目的的完全内部报告,则可能不是问题。但是,如果这是面向客户的,我强烈建议您在Audit表中添加OldNew值的其他列,以使您能够绝对控制。

答案 1 :(得分:1)

您尝试过吗?

  1. 选择单元格

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

  3. 在“字体”标签中,选择“颜色”

4在表达式下选择

5写为

= iif(字段!ColumnName.Value =“ WAS”,“红色”,“绿色”)