Динамический выбор набора данных в SSRS - PullRequest
0 голосов
/ 13 апреля 2009

Я собираюсь разработать отчет с использованием SSRS 2005. Возможно ли динамическое выделение набора данных?

Допустим, у меня будет две таблицы, где первая - это сводка, а вторая - подробные данные. Один из моих параметров (со значениями Summary и Detail) будет определять, какая версия отчета должна отображаться. Могу ли я иметь два разных набора данных, и, нажимая кнопку просмотра отчета в диалоговом окне просмотра параметров (или перед), указать, какой набор данных будет использоваться?

Ответы [ 5 ]

2 голосов
/ 19 октября 2010

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

=Switch(Parameters!ToDecide.Value = "Summary",
"Your query for Summary", 
Parameters!ToDecide.Value = "Detail",
"Your query for Detail") 
  1. Убедитесь, что в запросе нет лишних пробелов (не более одного пробела, где это необходимо)
  2. Оба запроса должны возвращать значения, требуемые таблицей в макете.
1 голос
/ 19 мая 2009

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

Надеюсь, это поможет,

Bill

1 голос
/ 13 апреля 2009

Вам, вероятно, понадобится две пары таблиц, скажем, в прямоугольнике, и скрыть неиспользуемую (на уровне контейнера). Или используйте подотчеты.

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

0 голосов
/ 26 марта 2019

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

0 голосов
/ 02 мая 2009

Было бы проще создавать и поддерживать, если у вас есть две отдельные таблицы и скрывать одну или другую в зависимости от сделанного выбора.

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

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

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

...