Параметр отчета SSRS 2008R2 со значением Now () по умолчанию не обновляется автоматически - PullRequest
0 голосов
/ 12 декабря 2011

Система - SSRS 2008R2 с использованием построителя отчетов 3.0 (или BIDS, если вы считаете, что ответ лежит там)

Цель - создать отчет, который отображает данные о продажах за последние 24 часа для каждого региона продаж. Отчет должен обновляться каждые 10 минут и всегда отображать последние 24 часа с момента последнего обновления. Однако пользователям все еще нужно иметь возможность изменять временные рамки.

Что я сделал?

  1. Создан отчет, который показывает данные о продажах для одного региона в зависимости от 3 параметров: StartTime, EndTime, RegionCode. Давайте назовем это RegionalSales
  2. Создан основной отчет, включающий несколько подотчетов RegionalSales. главный отчет имеет 2 параметра - StartTime (со значением по умолчанию dateadd ("h", - 24, Now ())) и EndTime (со значением по умолчанию Now ()). Я отправляю StartTime и EndTime в подотчеты, и каждому подотчету присваивается свой регион.
  3. Я установил для свойства автоматического обновления основного отчета значение 600.

Результаты - Сначала все кажется идеальным - мастер-отчет загружается, и показанные данные соответствуют времени загрузки (скажем, 22:08). Однако после автоматического обновления (которое происходит в 22:18) данные по-прежнему корректны по отношению к 22: 08.

Проблема в том, что при первой загрузке отчета параметры получают значения по умолчанию, как я указал (StartTime = 10/12/2011 22:08 & EndTime = 11/12/2011 22:08). Однако при автообновлении вместо обновления параметров (So I'll get StartTime = 10/12/2011 22:18 & EndTime = 11/12/2011 22:18) я все равно получаю старые значения (StartTime = 10/12/2011 22:08 & EndTime = 11/12/2011 22:08)

Есть мысли о том, почему и как я могу это изменить?

Спасибо!

1 Ответ

1 голос
/ 11 января 2012

Если я правильно понимаю ...

К сожалению, параметры отчета получают свои значения только при первой загрузке, если пользователь не нажмет вручную кнопку «Просмотреть отчет».

Чтобы обойти это, я бы попытался преобразовать параметры даты, чтобы не использовать значения по умолчанию, а вместо этого получать их значения из запроса и использовать эквивалент GETDATE () для вашей СУБД. Если я не ошибаюсь, это потребует от вас добавить еще один DataSet в ваш отчет ... но на самом деле это не будет набор данных, так как запрос для него будет просто SELECT GETDATE () [или эквивалент для вашей RDBMS] и любые преобразования, которые вам нужно сделать для этого.

...