3

Итак, у меня есть отчет «ежедневной панели мониторинга» в SSRS 2005. У него есть параметр @pDate, который по умолчанию равен «= Now».Reporting Services: переопределение параметра по умолчанию с выражением в связанном отчете

Я хотел бы использовать этот же отчет в связанном отчете, чтобы показать последнюю итоговую панель мониторинга (которая затем будет отправлена ​​по почте через подписку) и переопределить параметр по умолчанию другим выражением: "= dateadd (d, -1 ,Теперь)." Но когда я изменяю параметр по умолчанию, я получаю ошибку несоответствия данных (natch).

Я предполагаю, что это конец строки, и мне просто нужно развернуть копию ежедневного отчета панели мониторинга с вчерашним днем ​​по умолчанию @pDate, но я подумал, что отправлю сюда и посмотрю, есть ли у кого-нибудь отличные ярлык для этого, без необходимости поддерживать два RDL.

UPDATE: Я нашел это на MSDN:

Если Значение по умолчанию принимает значение, вы можете ввести константу или синтаксис, который действует для расширения обработки данных используется вместе с отчетом.

"Модуль обработки данных", по-видимому переводит на сервер SQL, поэтому я попытался действительные выбирает одноэлементные, которые не были постоянными (GetDate(), "04/27 /" + YEAR (GETDATE()), и т.д .. .) и все равно ничего.

ответ

1

Так я узнал, что мой вопрос: если у вас есть подотчеты в пределах основного отчета, которые используют параметры PASSTHROUGH из основного доклада, убедитесь, что все ваши параметры в ваших подотчетах используют один и тот же тип данных. В двух моих подписях использовался тип данных String для поля @pDate вместо DateTime, поэтому подписка была неудачной (хотя по какой-либо причине текущая версия отчета допускает эту несогласованность.)

Теперь я использую data- чтобы установить @pDate динамически, и все, кажется, работает нормально.

0

Я не тестировал это, но вы можете попробовать добавить второй параметр в отчет (без значения по умолчанию - назовите его pDateOverride ради аргумента), а затем измените значение по умолчанию для pDate как выражение, используя новое значение, если оно присутствует, иначе Now(). Что-то вроде:

=Iif(IsEmpty(Parameters!pDateOverride.Value),Now(),Parameters!pDateOverride.Value) 

Вы можете установить pDateOverride при вызове отчета для создания вчерашней окончательной приборной панели.

+0

Эй, это действительно отличная идея в целом, но она снова представляет собой оригинальную проблему: как программно установить pDateOverride со вчерашней датой. –

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

  • Нет связанных вопросов^_^