2014-12-04 3 views
0

Я пытаюсь установить значение параметра по умолчанию в отчете SSRS. Я хочу проверить текущую дату, чтобы убедиться, что она равна первому дню недели (в моем случае в понедельник). Если это первый день недели, то я хочу, чтобы значение по умолчанию было текущей датой минус 2 дня, если это не первый день недели, тогда я хочу, чтобы значение по умолчанию было текущей датой минус 1 день.Сравнение сегодняшней даты с первым днем ​​недели

У меня, похоже, проблема с синтаксисом, но он не говорит мне, где. Мои параметры: StartDate и EndDate.

это то, что я пробовал:

=iif(weekday(Today(),FirstDayOfWeek.Monday)==1,DateAdd("d",-2,today(),DateAdd("d",-1,today()) 

это родовое Я получаю ошибку:

The value expression for the report parameter 'StartDate' contains eror:[BC30201] Expression expected. 

Где я буду неправильно?

ответ

1

Вы пытаетесь использовать синтаксис Sql в выражении SSRS VBA. SSRS VBA позволяет очень похожие выражения для обработки даты в Sql, главным отличием является использование перечисления DateInterval.

Таким образом, ваше выражение должно использовать VBA синтаксис:

=IIF(Weekday(Today, FirstDayOfWeek.Monday) = 1, DateAdd(DateInterval.Day, -2, Today), DateAdd(DateInterval.Day, , -1, Today)) 
+0

проблема в моем случае отсутствовала круглые скобки и знак двойного равенства. В заявлениях IIF используется один равный –

1

Похоже, что вам не хватает закрывающих круглых скобок после первой логической части оператора if, а другая - для закрытия оператора.

=iif(weekday(Today(),FirstDayOfWeek.Monday)==1,DateAdd("d",-2,today()),DateAdd("d",-1,today())) 
+0

все еще получаю такое же сообщение об ошибке –

+0

я также, если оператор использует один = а затем дважды. спасибо за поиск отсутствующих круглых скобок –

Смежные вопросы