按 ssrs 中的月值排序

Sort by month value in ssrs

我在 SSRS 中使用自定义分组选项(即按办公室、卖家、买家等)进行了非常尴尬的设置。例如,用户可以按年然后按月对项目进行分组。那么报告的结果是:

Gr1. | Gr2.
2015 | April
2015 | August
2015 | February
2015 | January 
and so on... 

所以两列都按字母顺序排列,这对所有自定义分组选项都非常有效,但月份除外 - 月份应该有自己的排序逻辑。我该如何实施?

您应该尝试 return 所有信息以其原始类型从数据库中获取。而不是 return 将月份名称设置为“一月”、“二月”等,例如 return 2015010120150201(或任何默认日期)会更好格式适合您的环境)

然后您可以更改报告中类型的格式。例如设置单元格为return

=MonthName(Month(Fields!myDate.Value),False)

到 return 任何日期的月份名称。 SSRS 将在订购时知道如何以正确的顺序放置日期。

备选方案

假设您不想编辑数据的 returned 方式,您可以在报表后面的代码中使用 Select 语句来手动提供月份的顺序。

假设数据集

Month      Val
---------- ---
January     1
February    2
March       3

按月排序时return如下

相反,将以下代码插入到您的报告中(右键单击报告区域,select 报告属性,然后是代码)

public function MonthNumber(MonthName AS String) AS Integer
    Dim MonthNum AS Integer = 0

    Select Case MonthName    
        Case "January"
            MonthNum = 1
        Case "February"
            MonthNum = 2
        Case "March"
            MonthNum = 3
    End Select

    return MonthNum
end function

然后设置要排序的组属性

=Code.MonthNumber(Fields!Month.Value)

给出以下结果

这是因为在订购套装时,它不是只看报告的名称,而是通过代码传递名称,这有效地告诉报告每个月分配的编号。然后根据该值而不是月份名称对其进行排序。

希望这对你有用。如果您还有任何问题,请告诉我。