ssrs动态文字颜色

时间:2013-03-01 19:50:05

标签: reporting-services ssrs-2008

我正在使用SSRS for MS-SQL 2008 R2。我有一列数据显示Active Staff,Inactive Staff或Null。如果它们是Inactive Staff或Null,我想将列中文本的颜色更改为红色。我还想更改Null以在列中显示“No Staff”。我可以得到一个或另一个红色,但不是两个,目前我有非活动员工。

我用来生成列的两个表达式是: 对于列值:

=IIF(IsNothing(Fields!StaffName.Value), 
      "No Staff", 
      Fields!StaffName.Value)

对于颜色:

=IIF(Fields!StaffName.Value.ToString().Contains("Inactive"), "Red",
 IIF(ISNothing(Fields!StaffName.Value), "Red", 
 "Black"
 ))

1 个答案:

答案 0 :(得分:2)

我对您的数据集做了一些猜测,并汇总了一个简单的例子。

数据集:

select StaffName = 'Staff 1'
union all select StaffName = 'Staff 2 (Inactive)'
union all select StaffName = null

文本框的表达式,与您的完全相同:

=IIf(IsNothing(Fields!StaffName.Value), "No Staff", Fields!StaffName.Value)

文本框 颜色属性的表达式:

=IIf(InStr(Fields!StaffName.Value, "Inactive") > 0 or IsNothing(Fields!StaffName.Value)
    , "Red"
    , "Black")

最终结果:

enter image description here

@Preet Sangha也在他的评论中提出了一个很好的观点,所以你可能需要考虑案例敏感性。