SQL Reporting Services 2005 - незапрашиваемые параметры отчета - PullRequest
2 голосов
/ 27 января 2009

Я работаю над отчетом в службах Reporting Services и не могу понять, почему у меня проблемы с параметрами незапрашиваемых отчетов.

Я пытаюсь получить текущий год и попробовал:

=YEAR(TODAY())    
=DATEPART("yyyy",TODAY())    

Я также попробовал СЕГОДНЯ вместо СЕГОДНЯ ()

Все это, кажется, нарушает раскрытие года в моем отчете. Я думал, что если что-то не так, он просто не получит правильное значение по умолчанию ... но нет, это нарушает все поле.

Есть мысли? статьи?

UPDATE:
Подожди, подожди, подожди ... самая странная вещь. Параметр Year является вторым параметром этого отчета. И его серый цвет (без значения), пока я не выберу первый параметр (в моем случае «категория»). Я так или иначе говорю Парам Года, чтобы сделать это? или SSRS 2005 обрабатывает параметры по порядку? Я не думаю, что когда-либо замечал это раньше.

ОБНОВЛЕНИЕ 2:
Пожалуйста, смотрите все комментарии

Ответы [ 5 ]

2 голосов
/ 27 января 2009
=DateTime.Today.Year

тоже должно работать.

Редактировать: Бруно - у меня такое же поведение, как вы видите. Я создал образец отчета со строковым первым параметром без значения по умолчанию и строковым вторым параметром со значением по умолчанию = DateTime.Today.Year. Когда у меня есть один со значением по умолчанию в качестве 2-го параметра в порядке, он отображается пустым и отключен.

Мне удалось решить эту проблему двумя способами: сначала добавив значение по умолчанию = String.Empty к моему первому параметру, а вторым способом было просто изменить порядок параметров.

Не уверен, является ли это поведение намеренным или ошибочным, но, как вы сказали, я не заметил этого до сегодняшнего дня, когда вы указали на это в своем вопросе.

2 голосов
/ 28 января 2009

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

Из MSDN: «Порядок параметров важно, когда у вас есть каскад параметры, или когда вы хотите показать пользователи значение по умолчанию для одного параметр, прежде чем они выбирают значения для других параметров. "

Таким образом, он всегда будет ждать, пока у вас не появится значение по умолчанию для вашего первого параметра или вы не введете значение первого параметра, прежде чем он обработает следующий и т. Д.

http://msdn.microsoft.com/en-us/library/cc281392.aspx

2 голосов
/ 27 января 2009

Попробуйте:

=Year(Now)

Я не уверен, что это то, что вам нужно, но у меня это сработало. Я использовал его для формирования строки даты, поэтому я использовал = Year (Now) .ToString ().

0 голосов
/ 02 сентября 2009

Def из-за порядка оценки параметров.

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

Кто-то поднял вопрос об использовании фильтра даты на запрашиваемом значении по умолчанию - если вы сделаете это, вы заметите очень раздражающий эффект при обновлении экрана в любое время, когда даты меняются, прежде чем вы сможете запросить отчеты.

0 голосов
/ 21 апреля 2009

Я обнаружил, убедившись, что ВСЕ мои параметры имеют хотя бы какое-то значение по умолчанию, тогда вы не увидите, что они не отображают выбор даты и времени. Таким образом, каждый параметр перед вашим параметром datetime в порядке должен иметь значение (по умолчанию), иначе он не будет работать.

...