SSRS 自定义排序顺序
SSRS Custom Sort Order
我有一个简单的问题。在 SSRS 中,我有一个存储过程为我提供产品 Classes 的总单位。我收到了一个有趣的新排序请求。请求是按 desc 顺序单位排序,然后强制特定产品 Class 始终出现在底部,无论它们在 desc 单位聚合中的排名如何。我可以轻松地编写一个表达式使 class 出现在最后,只要我只对产品 Class 名称进行排序即可。 SSRS 是否允许此选项?在下面的示例中,如果我仅使用 class 作为排序字段,Other class 实际上将是列出的第二个 class。但请求是始终将其放在底部。有什么想法吗?
Sort Example
提前谢谢大家!
我要做的是使用表达式对该 tablix(如果这些是行组,则为组)进行排序,将 Other
的 Total Units
设置为 -1
为了排序的目的。如果正常类别可以具有低于 0 的值,则将其设置为某个较大的负数,如果可能的话,任何类别都不会低于该值。这不会更改 Total Units
列中 Other
旁边 显示的内容 ,但它会更改排序,以便 Other
始终位于底部。
无论您是在 tablix、行组还是在图表中显示它都没有关系。无论您在哪里设置 Sort by
列,都不要使用列,而是使用如下表达式:
=IIf(Fields!ProductClass.Value = "Other", -1, Fields!TotalUnits.Value)
并排序 Z to A
。如果这将进入 tablix 或具有任何类型分组的图表中,尽管您可能需要稍微修改它以说明聚合。
另一种方法是对您的排序设置 2 层:第一层是一个表达式,例如 =IIf(Fields!ProductClass.Value = "Other", 0, 1)
、Z to A
,然后第二层简单地按 TotalUnits
排序, Z to A
.这将首先确保 Other
位于底部,而其余类别位于其上方,然后它将对其余类别进行排序。我不确定这两种方法之间是否存在明显的性能差异,但无论出于何种原因,也许一种方法比另一种方法更有意义或者更容易实现。
我有一个简单的问题。在 SSRS 中,我有一个存储过程为我提供产品 Classes 的总单位。我收到了一个有趣的新排序请求。请求是按 desc 顺序单位排序,然后强制特定产品 Class 始终出现在底部,无论它们在 desc 单位聚合中的排名如何。我可以轻松地编写一个表达式使 class 出现在最后,只要我只对产品 Class 名称进行排序即可。 SSRS 是否允许此选项?在下面的示例中,如果我仅使用 class 作为排序字段,Other class 实际上将是列出的第二个 class。但请求是始终将其放在底部。有什么想法吗?
Sort Example
提前谢谢大家!
我要做的是使用表达式对该 tablix(如果这些是行组,则为组)进行排序,将 Other
的 Total Units
设置为 -1
为了排序的目的。如果正常类别可以具有低于 0 的值,则将其设置为某个较大的负数,如果可能的话,任何类别都不会低于该值。这不会更改 Total Units
列中 Other
旁边 显示的内容 ,但它会更改排序,以便 Other
始终位于底部。
无论您是在 tablix、行组还是在图表中显示它都没有关系。无论您在哪里设置 Sort by
列,都不要使用列,而是使用如下表达式:
=IIf(Fields!ProductClass.Value = "Other", -1, Fields!TotalUnits.Value)
并排序 Z to A
。如果这将进入 tablix 或具有任何类型分组的图表中,尽管您可能需要稍微修改它以说明聚合。
另一种方法是对您的排序设置 2 层:第一层是一个表达式,例如 =IIf(Fields!ProductClass.Value = "Other", 0, 1)
、Z to A
,然后第二层简单地按 TotalUnits
排序, Z to A
.这将首先确保 Other
位于底部,而其余类别位于其上方,然后它将对其余类别进行排序。我不确定这两种方法之间是否存在明显的性能差异,但无论出于何种原因,也许一种方法比另一种方法更有意义或者更容易实现。