SSRS报告自定义排序顺序

Ari*_*a B 1 sorting reporting-services ssrs-2008 ssrs-2008-r2 ssrs-2012

我在SSRS表中的行组之一中需要自定义排序时遇到一些问题。

自定义排序顺序的逻辑-

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

例如-

假设从值列表中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

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

如果有人可以帮助我,将不胜感激。

谢谢。

Han*_*ist 6

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

针对您的情况:

A、E、G、D、C 和 F、D应始终显示在最后,其他元素按 asc 排序

我会先做一个自定义排序:

=IIF(Fields!MyFIeld.Value = "D", 2, 1)
Run Code Online (Sandbox Code Playgroud)

这将首先对D 进行排序。

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

对于第二种情况:

如果元素列表是 - P、J、M、N、D、C、K,则所需的排序顺序是 C、J、K、M、N、P 和 D

然后我将使用多个IIF进行单个自定义排序:

=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)))))))
Run Code Online (Sandbox Code Playgroud)
    ——


ale*_*eta 5

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

=IIF(
Fields!YourField.Value="D","ZZZZ" & Fields!YourField.Value,
Fields!YourField.Value
)
Run Code Online (Sandbox Code Playgroud)

如果您没有四个前四个字母为ZZZZ的组,则会对您的组进行排序。

让我知道是否有帮助。