У нас есть отчет SSRS, который принимает один входной параметр даты / времени. Мы обнаружили, что отчет не выполняется, когда он выполняется из наших клиентов Silverlight со следующей ошибкой:
"Значение, указанное для параметра отчета CurrentDate, недопустимо для его типа."
В ходе дальнейшего расследования мы обнаружили, что отчет терпит неудачу, когда значение даты, которое передается в отчет, имеет номер дня больше 12. Например, 01.01.2011 в порядке. 17.06.2011 не удастся. Это говорит нам о том, что в отчете на поле SSRS должна быть указана дата в американском формате, т. Е. Мм / дд / гггг.
Как я могу это исправить? До сих пор я пробовал следующее:
Я установил свойство языка в отчете на en-GB. Это не имеет значения.
Я изменил локаль в коде Silverlight непосредственно перед выполнением отчета, например,
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
ExecuteReport();
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-GB");
Это работает, но я не доволен этим решением. Похоже, это большой взлом, чтобы получить даты, принятые в наших отчетах SSRS.
Почему SSRS ожидает, что все параметры даты будут в формате США? Могу ли я решить эту проблему без прыжков через обручи? Пожалуйста, помогите!