Sorting 为什么我的矩阵行组在SSR中不起作用

Sorting 为什么我的矩阵行组在SSR中不起作用,sorting,matrix,reporting-services,Sorting,Matrix,Reporting Services,我有一个矩阵,其中的行是从DB中提取的,它们显示如下: Critical High Informational Low Medium =SWITCH(Fields!CurrentRiskLevel.Value = "Low", "Green", Fields!CurrentRiskLevel.Value = "Moderate", "Blue", Fields!CurrentRiskLevel.Value = "Medium", "Yellow", Fields!CurrentRiskLeve

我有一个矩阵,其中的行是从DB中提取的,它们显示如下:

Critical
High
Informational
Low
Medium
=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"
)
我需要他们像这样展示:

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))))
当我生成报告时,它现在只有一行。只是“关键”一行。缺少所有其他行

有人知道我做错了什么吗

当我使用此选项时:

=iif(字段!Risk.Value=“严重”、“1”、iif(字段!Risk.Value=“高”、“2”、iif(字段!Risk.Value=“中等”、“3”、iif(字段!Risk.Value=“低”、“4”、iif(字段!Risk.Value=“信息性”、“5”、“10”))


所有行再次显示,但顺序不正确,好像根本没有进行排序。

您有以下选项:

尝试使用数据库中的Row_Number()函数生成此数据的标识符。然后可以在行组中指定它。 尝试使用开关ssrs表达式而不是嵌套iif,如下所示:

Critical
High
Informational
Low
Medium
=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"
)

通过实际数据集而不是在报告运行时提供风险标识符可能更清晰、更精确。在原始数据集中,可以在select sql语句中包含case语句:

案例[风险] 当“关键”时,则为“1” 当“高”时,则为“2”
当“中等”时,则为“3” 当“低”时,则为“4” 其他'5' 作为风险识别码结束

然后将“风险识别码”包含在表格/矩阵中,并可供分组或排序