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。
必须为在报告中显示的行组数据实现此逻辑。
如果有人可以帮助我,将不胜感激。
谢谢。
我使用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)
尝试在“排序”设置中使用以下表达式。
=IIF(
Fields!YourField.Value="D","ZZZZ" & Fields!YourField.Value,
Fields!YourField.Value
)
Run Code Online (Sandbox Code Playgroud)
如果您没有四个前四个字母为ZZZZ的组,则会对您的组进行排序。
让我知道是否有帮助。
| 归档时间: |
|
| 查看次数: |
9747 次 |
| 最近记录: |