Ссылаясь на свойства ReportItem в SSRS

Можно ли в выражении отчета SSRS ссылаться на свойство «Hidden» объекта ReportItem?

Более конкретно: мой отчет SSRS состоит из сводки с подотчетом, содержащим детали. Я хотел бы иметь возможность остановить выполнение подотчета, если он скрыт, как в этот вопрос. Ответ на этот вопрос рекомендует изменить запрос на основе параметра, но моя проблема в том, как установить этот параметр. На самом деле мне нужно, чтобы параметр был равен 1 или 0; запрос просто ничего не вернет, если он равен 0, и этого достаточно.

Я хотел бы иметь возможность отображать или скрывать подотчет, используя текстовое поле как ToggleItem, и иметь выражение в качестве значения параметра, которое выглядит примерно так:

= iif (ReportItems! SubReport1.Hidden = False, 1, 0)

...или это:

= iif (ReportItems ("SubReport1"). Скрытый = 0, 1, 0)

... но свойство "Скрытый" тоже не отображается.

Другие варианты, которые я изучил:

  1. Помещение невидимого текстового поля и использование его значения в выражении параметра в соответствии с этим Статья в MSDN. Тогда проблема заключается в том, как установить значение текстового поля.
  2. Использование переменной; применима та же проблема (на самом деле я даже не уверен, как вы используете переменную в SSRS, или даже если можете).
  3. Ведение подотчета как отдельного отчета и привязка к нему; немного неэлегантно и означает потерю другого содержимого отчета, когда пользователь хочет увидеть детали.
  4. Обширный поиск в Google; возвращает множество способов установить «скрытое» свойство, но не может ссылаться на него.

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


person probablyrichard    schedule 10.03.2015    source источник


Ответы (2)


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

С этой целью имеет смысл просто скрыть или показать этот подотчет с помощью параметра, а не переключателя текстового поля. Вы можете указать значение параметра для этого во вложенном отчете, используя:

Видимость -> «Показать или скрыть на основе выражения» -> f (x)

IIF(Parameters!ToggleSub.Value = 1, true, false)

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

Я надеюсь, что это помогает вам.

person Sonny Childs    schedule 10.03.2015
comment
Большое спасибо; это действительно полезно. Поскольку это небольшой отчет, и это было бы очень полезной функцией, мне интересно, может ли быть разумным переделать его в ASP.NET, хотя это совершенно новая банка червей и, вероятно, потребует больше времени, чем оно того стоит. Но это уже другая история. Еще раз спасибо за ответ. - person probablyrichard; 10.03.2015
comment
Я экспериментировал с этим, и на самом деле довольно легко написать свою собственную панель мониторинга / представление отчета на C #, используя winforms. Есть небольшой изящный элемент управления ReportViewer. Мой следующий проект - создать множество небольших отчетов, которые можно будет визуализировать индивидуально в интерфейсе графического интерфейса C #. - person Sonny Childs; 10.03.2015

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

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

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

SSRS 2008 R2 Детализация по запросу до подотчета < / а>

person JC Ford    schedule 10.03.2015