2017-01-31 19 views
1

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

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

=Parameters!P.Value(0) 
=Parameters!P.Value(1) 
... 
=Parameters!P.Value(n) 

Есть ли способ сделать это динамически?

+0

Просьба входы и ожидается выход путы. – Snowlockk

ответ

1

Интересный вопрос, я могу только подумать о преобразовании массива параметров в xml в наборе данных, а затем преобразовании его в таблицу через узлы xml.

Набор данных параметров (назовем его @par), то следует установить в выражении как:

= "<n>" + join(Parameters!P.Value,"</n><n>") + "</n>" 

Затем запрос для набора данных будет таким:

declare @parxml xml = @par 
Select p.query('./text()') 
from @parxml.nodes('/n') as T(p) 

это будет укажите таблицу с одной строкой на каждое выбранное значение параметра.

+0

круто, он работает как шарм ... проще, чем мое решение точно –

1

Наконец-то я нашел хорошее решение.
(помните, P является многозначным-параметр .. ы Р = а;. Б; с; д; е)

Сначала добавьте набор данных, который указывает на таблицу (базы данных), выполненной из числового поля прогрессивной (id) следующим образом: (не забудьте загрузить таблицу с количеством строк> = в число возможных значений в вашем параметре с несколькими значениями ... или просто загрузите, как 10000 строк, и я думаю, что все будет в порядке)

enter image description here

затем в отчете добавить таблицу: поле ид (от DataSet1) и следующим выражением (отображающая параметра P):

=Parameters!P.Value(Fields!id.Value) 

enter image description here

теперь, если вы запустите отчет, вы получите что-то вроде этого:

enter image description here

Для удаления строки #ERROR просто фильтровать всю таблицу, как показано ниже, и вы сделали!

enter image description here

+0

Это хорошее решение +1, но вы пробовали решение, которое я разместил? ему не нужно создавать таблицу или фильтровать что угодно, и это всего лишь четыре строки кода – Jayvee

+0

yep, это тоже работает –