按 ssrs 中的月值排序
Sort by month value in ssrs
我在 SSRS 中使用自定义分组选项(即按办公室、卖家、买家等)进行了非常尴尬的设置。例如,用户可以按年然后按月对项目进行分组。那么报告的结果是:
Gr1. | Gr2.
2015 | April
2015 | August
2015 | February
2015 | January
and so on...
所以两列都按字母顺序排列,这对所有自定义分组选项都非常有效,但月份除外 - 月份应该有自己的排序逻辑。我该如何实施?
您应该尝试 return 所有信息以其原始类型从数据库中获取。而不是 return 将月份名称设置为“一月”、“二月”等,例如 return 20150101
、20150201
(或任何默认日期)会更好格式适合您的环境)
然后您可以更改报告中类型的格式。例如设置单元格为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)
给出以下结果
这是因为在订购套装时,它不是只看报告的名称,而是通过代码传递名称,这有效地告诉报告每个月分配的编号。然后根据该值而不是月份名称对其进行排序。
希望这对你有用。如果您还有任何问题,请告诉我。
我在 SSRS 中使用自定义分组选项(即按办公室、卖家、买家等)进行了非常尴尬的设置。例如,用户可以按年然后按月对项目进行分组。那么报告的结果是:
Gr1. | Gr2.
2015 | April
2015 | August
2015 | February
2015 | January
and so on...
所以两列都按字母顺序排列,这对所有自定义分组选项都非常有效,但月份除外 - 月份应该有自己的排序逻辑。我该如何实施?
您应该尝试 return 所有信息以其原始类型从数据库中获取。而不是 return 将月份名称设置为“一月”、“二月”等,例如 return 20150101
、20150201
(或任何默认日期)会更好格式适合您的环境)
然后您可以更改报告中类型的格式。例如设置单元格为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)
给出以下结果
这是因为在订购套装时,它不是只看报告的名称,而是通过代码传递名称,这有效地告诉报告每个月分配的编号。然后根据该值而不是月份名称对其进行排序。
希望这对你有用。如果您还有任何问题,请告诉我。