Я передаю имя таблицы из одного отчета другому отчету в SSRS. Мой отчет по сверлению должен создавать таблицу динамически на основе динамического набора данных.Создание динамической таблицы ssrs
Возможно ли это, или я пытаюсь достичь невозможного?
Я передаю имя таблицы из одного отчета другому отчету в SSRS. Мой отчет по сверлению должен создавать таблицу динамически на основе динамического набора данных.Создание динамической таблицы ssrs
Возможно ли это, или я пытаюсь достичь невозможного?
Практически все в 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
.
Конечно, это будет беспорядочно, если у вас много разных имен полей и множество разных таблиц. В этом случае вам может быть лучше создавать представления для создания псевдонимов для вас и использования представлений в вашем наборе данных или с помощью хранимой процедуры.
, но когда я создаю таблицу в отчете SSRS, она не отображает поля в наборе данных, потому что набор данных он создает динамическое имя таблицы Databse, он не показывает никаких полей. Как создать таблицу/матрицу с помощью этого динамического набора данных. –
Да, вы должны добавить поля вручную. Я буду обновлять ответ, чтобы включить это. –
Пожалуйста, помогите мне в этом, набор данных не заполняет никаких полей. поэтому отчет SSRS не может содержать никаких полей. –
Хранимая процедура. – shawnt00