Reporting services 动态文本颜色
我正在为MS-SQL 2008 R2使用SSRS。我有一列数据将显示活动人员、非活动人员或空。我想将列中文本的颜色更改为红色,如果它们是非活动的或空的。我还想将Null更改为在列中显示“No Staff”。我可以让一个或另一个变为红色,但不能两者都变为红色,目前我有不活跃的员工 我用于生成列的两个表达式是: 对于列值: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)
=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的真正优点——提供的定制级别。