Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services 动态文本颜色_Reporting Services_Ssrs 2008 - Fatal编程技术网

Reporting services 动态文本颜色

Reporting services 动态文本颜色,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,我正在为MS-SQL 2008 R2使用SSRS。我有一列数据将显示活动人员、非活动人员或空。我想将列中文本的颜色更改为红色,如果它们是非活动的或空的。我还想将Null更改为在列中显示“No Staff”。我可以让一个或另一个变为红色,但不能两者都变为红色,目前我有不活跃的员工 我用于生成列的两个表达式是: 对于列值: =IIF(IsNothing(Fields!StaffName.Value), "No Staff", Fields!StaffName.Value)

我正在为MS-SQL 2008 R2使用SSRS。我有一列数据将显示活动人员、非活动人员或空。我想将列中文本的颜色更改为红色,如果它们是非活动的或空的。我还想将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"
 ))

我对您的数据集进行了一些猜测,并给出了一个简单的示例

数据集:

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

记住区分大小写请记住,SSRS也用于其他数据源,例如SSA,因此并不总是确定SQL是查询语言。但我同意,有时查询(或其字段)比报告中的表达式更容易损坏。这是SSRS的真正优点——提供的定制级别。