Как экспортировать матрицу SSRS в CSV без потери структуры? - PullRequest
4 голосов
/ 09 мая 2011

Рассмотрим следующий источник данных:

declare @Test table (EmpId int, ProdId int, Sold int)
insert @Test (EmpId, ProdId, Sold) values (1, 1, 1)
insert @Test (EmpId, ProdId, Sold) values (1, 2, 2)
insert @Test (EmpId, ProdId, Sold) values (1, 3, 3)
insert @Test (EmpId, ProdId, Sold) values (1, 4, 4)
insert @Test (EmpId, ProdId, Sold) values (2, 1, 5)
insert @Test (EmpId, ProdId, Sold) values (2, 2, 6)
insert @Test (EmpId, ProdId, Sold) values (2, 3, 7)
insert @Test (EmpId, ProdId, Sold) values (2, 4, 8)
select * from @Test

Я создаю отчет Sql Server Reporting Services (SSRS) 2008 R2, который содержит одну матрицу, настроенную следующим образом:

|         | [ProdId]    |
| [EmpId] | [Sum(Sold)] |

Который в режиме предварительного просмотра отображает следующее (как и ожидалось):

|   | 1 | 2 | 3 | 4 |
| 1 | 1 | 2 | 3 | 4 |
| 2 | 5 | 6 | 7 | 8 |

Но когда я экспортирую его в CSV, я получаю это:

| EmpId | ProdId | Sold |
| 1     | 1      | 1    |
| 1     | 2      | 2    |
| 1     | 3      | 3    |
| 1     | 4      | 4    |
| 2     | 1      | 5    |
| 2     | 2      | 6    |
| 2     | 3      | 7    |
| 2     | 4      | 8    |

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

Ответы [ 2 ]

4 голосов
/ 06 июля 2011

Это часть большого изменения в рендеринге отчетов между SSRS 2005 и SSRS 2008.

Единственные решения, которые я нашел:

  1. Экспорт в Excel, затем сохранение документа Excel в формате CSV - Это выравнивает формат Excel и требует настройки группировок, чтобы каждая строка повторяла значения родительских групп.Однако существуют проблемы с экспортом в Excel для начала, например, если последовательные строки содержат одни и те же данные, средство визуализации иногда пропускает данные, которые можно остановить, установив для параметра DataElementOutput значение True для затронутых столбцов вместо 'Авто ', который позволяет визуализатору угадать, какие поля вы считаете важными.

  2. Создайте свой отчет в виде плоской таблицы - Это в значительной степени лишает смысламатрица для начала, и это неудобно, но вы можете определить столбцы заранее, и это можно сделать динамически либо в запросе, либо с помощью большого количества выражений в значении текстового поля и настройке динамической видимости столбцов.Но для этого может потребоваться создание десятков или сотен столбцов для обработки потенциального появления определенного значения.

  3. Не обновлять до 2008 - Еслиматричные отчеты и форматирование экспорта являются критически важными для бизнеса, в 2008 году действительно нет хорошего способа восстановить функциональность, поэтому использование SSRS 2005 - единственный надежный способ получить старую визуализацию.

Ресурсы :

0 голосов
/ 03 октября 2018

Вот обходной путь:

  • Переключите источник вывода CSV на дополнительный табликс, который показывает все данные как есть.
  • Отключите исходный таблик от вывода в CSV(Tablix> Свойства> DataElementOutput> NoOutput).
  • Скрыть дополнительный табликс, чтобы он не отображался.(Tablix> Щелкните правой кнопкой мыши> Свойства Tablix> Видимость> Скрыть).

Таким образом, вы полностью контролируете отображение на экране и вывод CSV.

...