Отчеты SSRS принимают только американские параметры даты - PullRequest
1 голос
/ 17 июня 2011

У нас есть отчет 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 ожидает, что все параметры даты будут в формате США? Могу ли я решить эту проблему без прыжков через обручи? Пожалуйста, помогите!

Ответы [ 3 ]

0 голосов
/ 28 июня 2013

Это также будет работать с использованием более общего формата ISO, разделенного тире: гггг-мм-дд .Этот формат не зависит от региональных настроек.Имейте в виду, что простое использование формата ISO ( ггггМдд ) не работает.

С уважением.

0 голосов
/ 29 мая 2018

Попробуйте:

 MyDateVariable.ToString(CultureInfo.InvariantCulture)
0 голосов
/ 17 июня 2011

ОК, я нашел один способ обойти это.Ранее я передавал тип DateTime .NET.Сейчас я передаю строковое значение в формате даты США, например

MeetingDate = MyDateVariable.ToString("MM/dd/yyyy");

Это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...