我正在使用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"
))
答案 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")
最终结果:
@Preet Sangha
也在他的评论中提出了一个很好的观点,所以你可能需要考虑案例敏感性。