2015-07-15 5 views
0

Я передаю имя таблицы из одного отчета другому отчету в SSRS. Мой отчет по сверлению должен создавать таблицу динамически на основе динамического набора данных.Создание динамической таблицы ssrs

Возможно ли это, или я пытаюсь достичь невозможного?

+0

Хранимая процедура. – shawnt00

ответ

1

Практически все в Reporting Services является выражением, включая запрос запроса Sql. Вы можете передать имя таблицы в качестве параметра, а затем использовать это для динамического построения запроса.

Щелкните правой кнопкой мыши набор данных, щелкните Dataset Properties и щелкните редактор выражений рядом с полем запроса, которое является кнопкой fx. Теперь мы можем отредактировать запрос как строковое выражение.

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

="SELECT Code, Description " 
&" FROM " & Parameters!TableName.Value 
&" ORDER BY Code " 

Когда оператор Sql основан на выражении Fields коллекция не обновляется автоматически, поэтому вы должны добавить поля вручную. В Dataset Properties отредактируйте сборку Fields и добавьте поля, которые находятся в наборе данных. Обратите внимание: несмотря на то, что вы используете разные таблицы, поля в наборе данных должны быть последовательными, чтобы вы могли связать их с ячейками таблицы.

Если поля из таблицы имеют разные имена, вам необходимо добавить их в имена, которые вы добавили в свою коллекцию Fields в своем Sql. Предположим, у ThisTable есть поля Id и Name и ThatTable есть Code и Description.

="SELECT " & IIF(Parameters!TableName.Value = "ThisTable", "Id", "Code") & " AS Code, " 
& IIF(Parameters!TableName.Value = "ThisTable", "Name", "Description") & " AS Description " 
&" FROM " & Parameters!TableName.Value 
&" ORDER BY Code " 

Таким образом, мы псевдонимами все поля должны быть возвращены как просто Code и Description.

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

+0

, но когда я создаю таблицу в отчете SSRS, она не отображает поля в наборе данных, потому что набор данных он создает динамическое имя таблицы Databse, он не показывает никаких полей. Как создать таблицу/матрицу с помощью этого динамического набора данных. –

+0

Да, вы должны добавить поля вручную. Я буду обновлять ответ, чтобы включить это. –

+0

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