Динамические имена файлов SSRS для подписок электронной почты

мы находимся в процессе миграции наших отчетов из Crystal Reports до SSRS. В Crystal Reports мы используем переменные to динамически создайте наши имена файлов, чтобы при отправке отчета по электронной почте файл имел имя отчета и дату выполнения. (например,MonthlyReport09-07-2012.xls).

возможно ли это в SSRS? Я не вижу прямого подхода к использованию переменных в имени файла при подписке на отчет. Это может оказаться хлопотным при отправке несколько отчетов с одним и тем же именем одному и тому же лицу, потому что было бы трудно различить, какой отчет какой.

любая помощь очень ценится. Спасибо.

6 ответов


в SSRS нет функции как таковой, но для этого есть работа. У вас есть два варианта
Вариант 1:
Вместо того, чтобы отправлять его по электронной почте напрямую, сначала сбросьте файл в папку fileshare, которая может быть чем-то вроде \machine-name\ExportReports\ReportName\ затем создайте задание windows, которое переименует файл в нужный формат и отправит его по электронной почте на следующем шаге.

Вариант 2:
Обратитесь к этому блог то, что вы хотите, начинается с раздела " Создание PDF выходной файл программно " теперь вы можете использовать это в сборке, а затем иметь некоторый механизм планирования, который подбирает расписание. Затем вызывается DLL, которая генерирует отчет и отправляет его по электронной почте.


невозможно указать имя файла отчета в стандартной подписке в службах Reporting Services.

Если у вас есть Enterprise edition (или SQL 2012 Business Intelligence edition), вы можете использовать функции управляемых данными подписок, которые позволяют указать имя файла отчета (и другие свойства) на основе данных, полученных из таблицы.

Если у вас есть Standard edition, то ваши варианты являются либо из тех, которые предложены Bhupendra, либо вы можете посмотреть на сценарии генерация отчета с использованием " rs.exe " утилита поставляется со службами Reporting Services и использовать Database Mail и SQL Server Agent для обработки электронной почты и планирования.


использовать @timestamp в имени файла, и он будет переводиться во время выполнения.


этот пост выглядит довольно старым , но лучше поздно, чем никогда ...

на рынке есть некоторые инструменты, которые могут запускать отчеты SSRS:CRD, R-Tag и RemiWare

Это настольные инструменты, но я думаю , вы не хотите заменять SSRS, просто чтобы расширить его.

Я не уверен в CRD и RemiWare, но R-Tag поддерживает отчеты с данными и динамические имена. Его также можно использовать с стандартной лицензией.


Я смог автоматизировать электронную почту и изменить имя файла, выполнив цикл через таблицу учетных записей, счетов-фактур и электронных писем, затем установив параметры и переименовав имя отчета и путь в каталоге в конце выполнения после выполнения я сделал ожидание в течение 2 секунд, а затем, когда к следующему циклу. I конец я установил путь и имя обратно в orginalname. Выступить лучше.


@timestamp работает для общего доступа к файлам Windows, как ответил Крис.

для доставки электронной почты вы можете использовать:

@ReportName-указывает имя отчета.

@ExecutionTime-указывает время выполнения отчета.

подробнее- MS Docs