SSRS 报告自定义排序顺序

SSRS Report Custom Sort Order

对于我在 SSRS table.

中的行组之一所需的自定义排序,我遇到了一些问题

自定义排序顺序的逻辑 -

如果行组值包含特定值,则它应始终显示在底部,所有其他值必须按升序显示。

例如-

假设从值列表 A,E,G,D,C,and F 中,"D" 应该始终显示在最后,其他元素将按升序排序。

因此,上面的列表应该按以下顺序排序 - A,B,C,E,F,G,D

或者如果元素列表是 - P,J,M,N,D,C,K 所需的排序顺序是 - C,J,K,M,N,P and D.

必须为报表中显示的行组数据实现此逻辑。

如果有人能帮我解决这个问题,我将不胜感激。

谢谢。

我使用 IIF(或多个 IIF)来进行这样的自定义排序。

对于您的情况:

A,E,G,D,C,and F, D should be always be displayed last and the other elements are to be sorted in asc

我会先进行自定义排序:

=IIF(Fields!MyFIeld.Value = "D", 2, 1)

这将首先对 D 进行排序。

然后添加仅使用字段 (Myfield) 的第二个 Sort 以按字段对其余部分进行排序。

第二种情况:

if the list of elements is - P,J,M,N,D,C,K the required sort order is C,J,K,M,N,P and D

然后我将使用多个 IIFs:

进行单个自定义排序
=IIF(Fields!MyFIeld.Value = "C", 1, 
 IIF(Fields!MyFIeld.Value = "J", 2, 
 IIF(Fields!MyFIeld.Value = "K", 3, 
 IIF(Fields!MyFIeld.Value = "M", 4, 
 IIF(Fields!MyFIeld.Value = "N", 5, 
 IIF(Fields!MyFIeld.Value = "P", 6, 
 IIF(Fields!MyFIeld.Value = "D", 7, 8)))))))
    -

尝试在排序设置中使用以下表达式。

=IIF(
Fields!YourField.Value="D","ZZZZ" & Fields!YourField.Value,
Fields!YourField.Value
)

如果您没有首四个字母为 ZZZZ 的组,这将对您的组进行排序。

如果有帮助请告诉我。

我创建了一个包含总计的 tablix,我能够按字母顺序、总计(升序)、总计(降序)进行排序。首先,我创建一个这样的数据集:

Select 'Name' as Order_Col, 1 as Order_Num
union 
Select 'Ascending' as Order_Col, 2 as Order_Num
union 
Select 'Descending' as Order_Col, 3 as Order_Num
order by 2

然后在列组部分的组属性中,我在排序选项中插入以下表达式:

   =Switch(Parameters!SortOrder.Value = 1,Fields!Name.Value
    ,Parameters!SortOrder.Value = 3,(Fields!TtlRef.Value)*-1
    ,Parameters!SortOrder.Value = 2,Fields!TtlRef.Value)

创建一个名为 SortOrder 的参数,其中值为 Order_Num,标签为 Order_Col。 您可以使用值 1 作为默认值。