Экспорт отдельных PDF-файлов из отчета, созданного SSRS

Могут ли SSRS называть и разделять экспортированные файлы PDF на основе групп параметров? Прямо сейчас, когда я запускаю отчет, он дает мне только один PDF-файл со 100+ страницами. Однако при каждом разрыве страницы я бы хотел, чтобы SSRS создавал новый файл pdf, и было бы реальной экономии времени, если бы он также вставлял имя файла pdf на основе выбора группировки.

Возможно ли это в SSRS, или мне нужно использовать SSIS для этой функции?

Я использую Visual Studio 2010 для SSRS и SQL Server 2012 для служб интеграции.


person MRawrawk    schedule 16.06.2015    source источник
comment
Я думаю, вам следует создать одностраничный отчет и создать небольшое приложение, использующее SSRS WebService. Другой вариант - разделить PDF-файл со 100+ страницами на 100+ PDF-файлов с помощью другого приложения, но у вас не будет пользовательских имен.   -  person Sébastien Sevrin    schedule 16.06.2015
comment
Насколько мне известно, то, что вы спрашиваете, невозможно в SSRS.   -  person Tab Alleman    schedule 16.06.2015
comment
Нашел простое решение. Я экспортировал отчет, сгенерированный SSRS, в виде электронной таблицы Excel и, используя Visual Basic Excel, запустил макрос для создания каждого из PDF-файлов на основе группировок отчета. Форматирование немного отличается от преобразования Excel в PDF, но я решил это, записав и запустив макрос форматирования для всех листов в книге.   -  person MRawrawk    schedule 01.07.2015


Ответы (1)


Вы сможете делать все, что хотите, в SSRS - если у вас есть Корпоративная версия с подписками на основе данных.

https://msdn.microsoft.com/en-us/library/ms159150(v=sql.130).aspx

У вас должен быть параметр для группировки (ваш разрыв страницы) - например, UserID.

В управляемом данными запросе (НЕ в отчете, а в другом запросе, используемом для активации подписки) у вас будет поле для группировки - ваш UserID в нашем примере. В другом поле может быть ваше ReportName, полученное из ваших данных, например.

UserID, 'ReportName for ' + UserName + ' on ' + GetDate() as ReportName

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

Есть способы запускать управляемые данными подписки без Enterprise Edition с использованием SSIS, но это потребует некоторой работы.

http://geoffbi.blogspot.com/2012/04/data-driven-subcriptions-in-standard.html

person Hannover Fist    schedule 16.06.2015