#reporting-services
#службы отчетов
Вопрос:
SQL Server 2019
Отчет создается в Visual Studio 2019 и еще не развернут в SSRS.
Сценарий — отчет вызывает хранимую процедуру, передающую 3 параметра (идентификатор представителя, год, месяц), затем отображает значение «первой строки» из нескольких столбцов данных, возвращаемых в разделе заголовка страницы, затем отображает остальные данные столбцов в табликсе.
Проблема — он отлично работает, когда я запрашиваю все (подстановочный знак%, вводимый в оператор LIKE) Повторения для любого заданного месяца / года. Он прерывается, когда я запрашиваю определенный идентификатор представителя.
Вот что я нашел:
- в запросе передается правильное значение идентификатора представителя, просмотренное через профилировщик,
- оператор, полученный из профилировщика, отлично работает в SSMS напрямую
- количество строк, возвращаемых через SSMS direct, равно 347, количество возвращаемых строк, как показано в Profiler, равно 355 (нечетное (для меня), но на данный момент это не главная проблема, поскольку в запросе «все» также есть разница в количестве строк, которая отображается нормально; предполагая какие-то накладные расходы)
- значения «первой строки» из возвращенных данных отображаются нормально на экране предварительного просмотра отчета
- это остальные данные столбцов, которые не отображаются в табликсе на экране предварительного просмотра отчета, когда я выбираю определенный идентификатор представителя или использую все
- Я также попытался жестко запрограммировать значения в хранимой процедуре, и возвращается то же количество строк, с тем же результатом, что используются значения «первой строки», но табликс не отображает остальные данные
- У меня есть сообщение «нет строк», но мы знаем, что оно видит строки или не может получить значения «первой строки», так что это довольно спорно
На какие вещи мне нужно обратить внимание, чтобы это заработало?
Заранее спасибо!
2020-10-21 РЕДАКТИРОВАТЬ: для чего это стоит, я теперь тоже попробовал
- повторное создание отчета без группировки верхнего уровня (REP), поскольку для версии с одним повторением этот уровень не требуется, никаких изменений
- добавляя в отчет (таким образом, он видит одни и те же данные) матрицу по сравнению с табликсом, matrix отображает как данные с одним повторением, так и данные с одним повторением, я просто не могу заставить это дать мне тот же формат, расположение и промежуточные строки и т. Д., Что и в табликсе(неудивительно, поскольку они разные звери), хотя я стараюсь изо всех сил на случай, если я не смогу заставить табликс вести себя
Комментарии:
1. Вы пробовали либо нажать зеленую круглую кнопку обновления, либо удалить все файлы * .data, чтобы убедиться, что VS не кэширует результаты запроса локально во время разработки?
2. Да, у меня есть инструмент, который удаляет все кэшированные данные .rdl.data и запускает его часто и обязательно для устранения неполадок.
3. Вы пытались удалить табликс и добавить его обратно.. У меня была эта проблема раньше.. со случайными отчетами, делающими это! Разочарование. На заметку.. воздержитесь от добавления к хранимым процедурам префикса SP_xxx . SP НЕ означает хранимую процедуру.. посмотрите
4. Я сделал это после публикации. Также пытался воссоздать с нуля. Никаких изменений в поведении. Re: соглашение об именах, эй, вы посмотрели на изображение, спасибо, и хороший улов (я имел в виду, что это sppci_).
Ответ №1:
Я нашел проблему. Он скрывал сетку в строке 1 повторения вместо того, чтобы скрывать ее в 0 строках, как ожидалось.
<Visibility>
<Hidden>=RunningValue(Fields!dataRepName.Value, CountDistinct, Nothing) = 1</Hidden>
</Visibility>