1

В отчете, над которым я работаю, пользователь вводит дату начала и дату окончания. Как правило, они будут охватывать две недели, например, если они войдут в 5/15/2016 для даты начала и 28.05.2016 для даты окончания.Как я могу вычислить и отобразить диапазон дат в поле отчета SSRS?

То, что мне нужно показать в заголовках столбцов, - это первая неделя над одной колонкой (которая в случае выше была бы 5/15 - 5/21/16), а вторая неделя над другой (которая была бы в этот случай 5/22 - 5/28/16).

Чтобы достичь этого, что мне нужно сделать в свойствах выражения Textbox для этих двух заголовков столбцов, если параметр BegDate содержит 5/15/2016, а параметр EndDate содержит 5/28/2106?

ответ

1

Try:

Первая неделя:

=Parameters!BegDate.Value & " - " & 
DATEADD(DateInterval.Day, 7 - DATEPART(DateInterval.Weekday,Parameters!BegDate.Value), Parameters!BegDate.Value) 

Вторая неделя:

=DATEADD(DateInterval.Day, -DATEPART(DateInterval.Weekday,Parameters!EndDate.Value)+1, Parameters!EndDate.Value) 
& " - " & Parameters!EndDate.Value 

Пример:

enter image description here

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

+0

Работает как чемпион, спасибо! –

1

Добавить новый столбец в ваш набор данных, который содержит первый день недели. Вы можете сделать это в SQL, как это:

DATEADD(DAY, 1-DATEPART(WEEKDAY, @d), @d) 

Вы также можете сделать это в качестве расчетного поля в наборе данных.

Теперь вы просто ссылаетесь на это поле в своем текстовом поле. Это может быть даже группировка столбцов в зависимости от того, что вам нужно.

+0

Спасибо, но я не хочу изменять хранимую процедуру; Я хочу сделать это в отчете, написав выражение для текстового поля. –

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