2

我正在为 MS-SQL 2008 R2 使用 SSRS。我有一列数据将显示 Active Staff、Inactive Staff 或 Null。如果它们是非活动人员或空值,我想将列中文本的颜色更改为红色。我还想将 Null 更改为在列中显示“No Staff”。我可以将其中一个或另一个交给 Red,但不能同时获得两者,目前我有 Inactive 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"
 ))
4

1 回答 1

2

我对你的数据集做了一些猜测,并整理了一个简单的例子。

数据集:

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

Text Box的表达式,与您的完全相同:

=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在他的评论中也提出了一个很好的观点,所以你可能需要记住区分大小写。

于 2013-03-01T22:01:44.110 回答