2012-01-17 4 views
0

В моем отчете Sql Server Reporting Services (SSRS) 2005, у меня есть запрос, который выполняет Pivot и приводит к списку динамических столбцов. Я внимательно следил за примером в http://www.simple-talk.com/community/blogs/andras/archive/2007/09/14/37265.aspx.SQL Dynamic Pivot Query в SSRS 2005

Теперь проблема заключается в том, что мой запрос может возвращать разные столбцы, и я не знаю имена этих столбцов при разработке отчета SSRS. Запрос выполняется нормально на вкладке «Данные» конструктора отчетов, но конструктор макета не знает имена моих столбцов, и он не позволит мне назначать поля для отображения.

Есть ли способ сделать это? Могу ли я динамически компоновать поля набора данных в коде? могу ли я получить доступ к столбцам данных в наборе данных по позиции, а не по имени?

+1

Можете ли вы опубликовать снимок экрана, что вы имеете в виду? Вам просто нужно создать отчет о кросс-вкладке в RS, не имеет значения, сколько у вас колонок или их имена. Это преимущество, вы кладете его в группу столбцов и динамически добавляете все столбцы независимо от имен. Вам нужно больше информации о том, что вы просите, и, возможно, некоторые снимки экрана со стрелками :). – JonH

+0

Сделайте это, и я приму это! Ты прав. У меня был ментальный блок и написал слишком сложный T-SQL запрос, чтобы сделать стержень. Все, что мне было нужно, было простым запросом, и Матрица сделала для меня поворот. –

+0

См. Мой ответ - всегда поворот и присутствует на переднем конце, а не на заднем конце. Это делает его еще проще. – JonH

ответ

1

Вы действительно можете воспользоваться услугами отчетности, чтобы использовать отчет о кросс-вкладке на основе столбцов. Напишите T-SQL в слое db, затем в раскрывающемся слое и снимите отчет с перекрестной вкладкой. В столбце группировки просто добавьте нужный столбец, а rs является достаточно умным и достаточно умным, чтобы динамически добавлять все столбцы.

Вот мой оригинальный комментарий :):

Можете ли вы опубликовать снимок экрана, что вы имеете в виду? Вам просто нужно создать отчет о кросс-вкладке в RS, не имеет значения, сколько у вас колонок или их имена. Это преимущество, вы кладете его в группу столбцов и динамически добавляете все столбцы независимо от имен. Вам нужно больше информации о том, что вы просите, и, возможно, некоторые снимки экрана со стрелками :).

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