如何在SSRS Tablix中对特定列数据进行排序

时间:2016-12-12 16:01:35

标签: sorting visual-studio-2012 reporting-services sql-server-2012 ssrs-2012

我正在使用Visual Studio 2012进行SSRS,而我的查询来自使用Microsoft SQL Server 2012。

我的问题属于SSRS和排序。

在我的Tablix中,我目前将行组设置为组 - >经理 - >所有者 - >状态描述,当它从数据集中的数据中提取数据时,它会正常运行。在Tablix中,基本上所有内容都是向下钻取,并且每个行组(组除外)最初都是隐藏的,并且可以由前面的报表项显示/切换。在“状态描述”部分中,当它拉入记录时,它会将它们拉入“活动”,“已完成”,“正在处理...”这很好,因为它们正在拉入ABC订单。

但是我想以特定文件进行过程的方式显示特定列,当它以Active,In Process,Completed ...的形式拉入时。这些只是数据可以拉动它的3种特定方式,还有更多,但这些是最常见的。如何按照我上面提到的方式对单个列进行排序,或者根据我希望的方式自定义排序?

I had to edit out names/info but basically it shows Group Name, then Manager Name, then Owner name, then a Status Description. The one I'm showing has Completed on top of In Process. The way I would want that sorted is the reverse In Process on top of Completed.

1 个答案:

答案 0 :(得分:2)

您可以在排序顺序中使用表达式来完全按照您的喜好进行排序。

您可以使用SWITCH语句按您想要的顺序对输出进行编号。例如,我有3种状态:"完成","保持"和" Word at Risk"。通常他们会排序为升序或降序......但如果我在排序顺序公式中输入这个,我可以改变它:

    =SWITCH(
Fields!PRS_STATUS.Value = "Complete", 1, 
Fields!PRS_STATUS.Value = "Word at Risk", 2 , 
Fields!PRS_STATUS.Value = "On Hold", 3)

现在它命令1,2,3又称完成,工作风险,暂停。

您可以将此开关置于更大的switch语句中,以根据条件或参数生成多个排序顺序。