Вы должны попытаться вернуть всю информацию из базы данных в своем родном виде. Вместо того, чтобы возвращать названия месяца как «Январь», «Февраль» и т. Д., Было бы лучше, например, вернуть 20150101
, 20150201
(или любой формат даты по умолчанию для вашей среды)
Вы можете изменить формат тип в отчете. Например, настройте ячейку для возврата
=MonthName(Month(Fields!myDate.Value),False)
Чтобы вернуть название месяца для любой даты. Затем SSRS узнает, когда указывается, как установить даты в правильном порядке.
АЛЬТЕРНАТИВА
Предполагая, что вы не хотите, чтобы изменить путь возвращается данные, вы можете использовать Select заявление в коде позади вашего отчета вручную обеспечить заказ на несколько месяцев.
Предположив Dataset
Month Val
---------- ---
January 1
February 2
March 3
При сортировке по месяцам возвращает следующие
Вместо этого вставьте следующий код в отчете (щелкните правой кнопкой мыши область отчета, выберите Свойства отчета, затем код)
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)
дает следующий результат
Это происходит потому, что при заказе набора, вместо того, чтобы просто смотреть на имя отчета, она проходит имя через Кодекс, которое эффективно сообщает отчет, номер которого присваивается каждому месяцу. Затем оно упорядочивается по этому значению вместо имени месяца.
Надеюсь, это полезно для вас. Если у вас есть еще один вопрос, пожалуйста, дайте мне знать.
Как эти данные поступают из базы данных - вы просто возвращаете строку имени или собственно дату? – Jonnus
Я возвращаю название месяца, так как это то, что данные сгруппированы по – Bartosz
Как указано ниже, независимо от того, какая информация сгруппирована, было бы лучше всего вернуть значение, сохраненное в качестве даты для этого поля – Jonnus