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