2016-09-15 3 views
0

Итак, у меня есть вопрос, который может быть очень глупым, но по какой-то причине моей проблемой является не .Различные даты в отчете SSRS с тем же подсчетом

Это довольно просто. Одно из полей в SSRS табликсе является дата рассчитывается с использованием SQL функции DATEADD:

=DateAdd(DateInterval.Day, (Int(Fields!TMinus.Value) * 7), Parameters!StartDate.Value) 

Где TMinus является отрицательным числом, имитирующие недель и StartDate быть дата начала деятельности.

Я вычисления то же самое в VB.NET, используя эту формулу, чтобы настроить DueDate о деятельности в строке ячейки:

Dim intTMinus As Integer = CInt(dataItem.GetDataKeyValue("TMinus").ToString) 
CType(dataItem.FindControl("RlblDue"), RadLabel).Text = CDate(DateAdd(DateInterval.Day, (intTMinus * 7), dtStartDate)).ToString 

Проблема в том, что в докладе SSRS показывает другую дату, чем Grid, хотя я использовал hardcoded значения, чтобы попытаться найти виновника в отчете.

Этот расчет в докладе:

=DateAdd(DateInterval.Day, (Int(-40) * 7), '12/09/2016') 

Отображение даты: 07/12/2015 в сетке, но 3/4/2016 на аргументами Report

ответ

0

Примечание DateAdd типы данных должны быть DateInterval, Double и DateTime соответственно. Вы передаете строку '12/09/2016' для третьего аргумента, но для этого требуется DateTime. Кстати, строки в SSRS должны быть окружены двойными кавычками.

После фиксации выражение, оно должно быть таким:

=DateAdd(DateInterval.Day, (Int(-40) * 7), CDATE("2016-09-12")) 

Который возвращает: 07/12/2015 в качестве сетки в VB.

Примечание CDATE("2016-09-12") преобразует строку даты в значение DateTime.

Проверьте, что у вашего параметра установлен Date/Time.

REFERENCE

Позвольте мне знать, если это помогает.