我有一个矩阵,从DB中提取行,它们显示如下:
Critical
High
Informational
Low
Medium
我需要他们这样展示:
Critical
High
Medium
Low
Informational
目前,我将转到行组属性,我选择排序,并输入以下表达式。
=IIF(Fields!Risk.Value = "Critical", 1, IIF(Fields!Risk.Value = "High", 2, IIF(Fields!Risk.Value = "Medium", 3, IIF(Fields!Risk.Value = "Low", 4, 5))))
当我生成报告时,它现在只有1行。只是"批判"行。缺少所有其他行。
有谁知道我做错了什么?
当我使用它时:
= iif(Fields!Risk.Value =" Critical"," 1",iif(Fields!Risk.Value =" High"," ; 2",iif(Fields!Risk.Value =" Medium"," 3",iif(Fields!Risk.Value =" Low",& #34; 4",iif(Fields!Risk.Value =" Informational"," 5","")))))
所有行再次显示,但顺序不正确,好像根本没有进行任何排序。
答案 0 :(得分:1)
通过实际数据集而不是在报告的运行时提供风险标识符可能更清晰,更精确。在原始数据集中,您可以在select sql语句中包含case语句:
案例[风险] 当'严重'那么'1' 当'高'然后'2' 当'中''那么'3' 当'低'然后'4' ELSE'5' END作为risk_identifier
然后,您可以在Tablix /矩阵中包含“risk_identifier”,并可以按分组或排序。
答案 1 :(得分:0)
您有以下选择:
尝试使用数据库中的Row_Number()函数为此数据生成标识符。然后,您可以将其指定为行组。 尝试使用switch ssrs表达式而不是嵌套的iif,如下所示:
=SWITCH(Fields!CurrentRiskLevel.Value = "Low", "Green",
Fields!CurrentRiskLevel.Value = "Moderate", "Blue",
Fields!CurrentRiskLevel.Value = "Medium", "Yellow",
Fields!CurrentRiskLevel.Value = "High", "Orange",
Fields!CurrentRiskLevel.Value = "Very High", "Red"
)