Динамический отчет SSRS - PullRequest
       30

Динамический отчет SSRS

2 голосов
/ 18 января 2011

У меня была проблема при создании динамического отчета в SSRS.Моя проблема:

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

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

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

Ответы [ 3 ]

2 голосов
/ 04 апреля 2011

Единственный способ заставить меня работать софтом:

Каждый отчет имеет 2 набора данных.

  1. ReportData
  2. DataHeaders

«DataHeaders» должен иметь правильное имя полей данных в «ReportData».Будьте внимательны, поскольку SSRS заменяет пробелы и специальные символы на «_»

. Теперь создайте таблицу (или матрицу) и перетащите заголовки DataHeaders в качестве столбцов вашего отчета.(Это должен быть сгруппированный столбец).Если вы запустите его на этом этапе, вы увидите все свои столбцы без каких-либо данных.Теперь приходит волшебство:

Создайте еще один отчет, который принимает параметр «DataField».Создайте в этом отчете другую таблицу или матрицу и установите для ее свойства набора данных «ReportData».В ячейке DATA для таблицы установите для нее выражение = Fields (Parameters! DataField.Value) .Value

Теперь вернитесь к своему первому отчету.Щелкните правой кнопкой мыши и вставьте подотчет.Щелкните правой кнопкой мыши на подотчете и выберите «Свойства подотчета».Под общим выберите второй созданный вами отчет, который будет использоваться в качестве подотчета.В параметрах выберите параметр DataField и установите для него значение: = Fields! DataField.Value

В моем случае я выполнил некоторое форматирование в этом выражении, чтобы устранить вышеупомянутую проблему с пробеламии специальные символы, поскольку моя хранимая процедура изначально использовалась в ASP.NET, и это было просто доказательством концепции.

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

0 голосов
/ 22 марта 2013

Сначала вам нужно создать «основной набор данных» из других наборов данных, которые основаны на вашем множестве сценариев SQL. Основной набор данных должен содержать данные, которые должны быть представлены в наиболее упрощенной форме, т.е. в простом формате списка , Наконец, перейдите на панель инструментов в SSRS и перетащите «Матрицу» в отчет. Таблица Matrix действует аналогично сводной таблице в Excel или кросс-таблице в Access, которая отображает все, что находится в наборе данных.

0 голосов
/ 18 февраля 2011

Я не нашел способа сделать это полностью динамически. Вот похожий вопрос с некоторыми возможными решениями: Как мне представить неизвестное количество столбцов в SSRS?

...