2013-05-28 4 views
1

У меня есть отчет, в котором используются параметры даты (так что должно быть дата и время в SSRS, что отстойно для начала). Когда пользователь вводит дату, такую ​​как «5/1», он создает тип данных DateTimeOffset, и я все равно не могу найти его в другом месте, отформатировать его или конкатенатировать в текстовом поле. Я попробовал отливку до даты до строки и т. Д. Все, что я получаю, это:Преобразование введенных пользователем дат из даты выбора

Неверное преобразование типа 'DateTimeOffset' в тип 'String'. ('String' заменяется на все, что я пытаюсь отличить)

Конечно, должен быть способ показать текстовое окно «С 5/1/2013 по 5/31/2013», когда пользователь типы «5/1» и «5/31» в поле даты? Действительно ли Microsoft думает, что компьютерно-грамотные люди хотят забрать мышь, чтобы использовать свой выбор даты, а не использовать вкладку?

ответ

1

Попробуйте следующее выражение:

="From " & Format(Parameters!Param1.Value.DateTime, "M/d/yyyy") & " to ..... etc" 

Чтобы проверить это выражение я создал свежий отчет, добавлен параметр DateTime, и вошел в «5/1» в текстовом поле, нажмите клавишу ВВОД. Доклад приходит со следующим текстовым полем:

От 1/5/2013 до ..... и т.д.

Для моей местности, это правильно, потому что при вводе значения DateTime дней считаются наступать месяцами. При просмотре отчета в текстовом поле будет также обновлять и показать:

5-1-2013 0:00:00 +01: 00

Из этого вы должны быть в состоянии экстраполировать и использовать его для второго параметра, а также расширения выражения для отображения точной строки, необходимой в вашем отчете.

+0

Спасибо Jeroen. Думаю, я попробовал это, БТУ снова попытается завтра, просто отправившись. С уважением Марк – mark1234

+0

, нет, боюсь. Я не замечал .DateTime, пока не попытался, но это не доступный метод в моих BIDS, у меня есть Equals и ReferenceEquals. Я использую Vs2008 9.0.30729.4462.QFE – mark1234

1

Параметры Param1.Value.DateTime помогли, когда пользователь опустил год, но он сломался, когда пользователь решил включить год. Я не мог заставить его работать в обоих условиях.

Попробуйте это.

Включить значение параметра даты в качестве поля в вашем наборе результатов. Ваш SQL может выглядеть следующим образом:

SELECT field1, field2, Convert(date, @FromDate) [FromDate_param] FROM table 

Тогда вы можете создать выражение в SSRS, как:

="From " & Format(First(Fields!FromDate_param.Value), "M/d/yy") 
Смежные вопросы