电子邮件订阅的SSRS动态文件名

时间:2012-09-07 21:08:15

标签: ssrs-2008 reporting-services

我们正在将报告从Crystal Reports迁移到SSRS。在Crystal Reports中,我们使用变量动态生成我们的文件名,因此当报告通过电子邮件发送时,该文件具有报告名称和执行日期。 (例如MonthlyReport09-07-2012.xls)。

这在SSRS中是否可行?在订阅报告时,我没有看到任何直接的方法在文件名中使用变量。当向同一个人发送具有相同文件名的多个报告时,这可能会很麻烦,因为很难辨别哪个报告是哪个。

非常感谢任何帮助。谢谢你。

5 个答案:

答案 0 :(得分:4)

SSRS中没有这样的功能,但有一个解决方法。你有两个选择 选项1:
不是直接通过电子邮件发送,而是首先将文件转储到fileshare位置,例如\ machine-name \ ExportReports \ ReportName \然后创建一个Windows作业,该文件将文件重命名为您想要的格式,并在下一步中通过电子邮件发送它。 />
选项2:
请参阅此blog您想要的内容从“以编程方式生成PDF输出文件”部分开始,现在您可以在程序集中使用它,然后使用一些调度机制来获取计划。然后调用生成报告的DLL并通过电子邮件发送它。

答案 1 :(得分:3)

在文件名中使用 @timestamp ,它会在运行时翻译。

答案 2 :(得分:2)

您无法在Reporting Services中的标准订阅中指定报告文件名。

如果您拥有企业版(或SQL 2012商业智能版),则可以使用数据驱动订阅功能,该功能允许您根据从表中检索的数据指定报告文件名(和其他属性)。

如果您有标准版,那么您的选项可能是Bhupendra建议的选项,或者您可以查看使用Reporting Services随附的“rs.exe”实用程序编写报告生成的脚本并使用数据库邮件和SQL Server代理处理电子邮件和日程安排。

答案 3 :(得分:0)

这篇文章看起来很旧,但最好晚了,从来没有......

市场上有一些可以运行SSRS报告的工具:CRDR-TagRemiWare

这些是桌面工具,但我想你不是要替换SSRS,只是为了扩展它。

我不确定CRD和RemiWare,但R-Tag支持数据驱动的报告和动态名称。它也可以与标准许可证一起使用。

答案 4 :(得分:0)

@timestamp适用于Windows文件共享,由Chris回答。

对于电子邮件递送,您可以使用:

@ReportName - 指定报告的名称。

@ExecutionTime - 指定执行报告的时间。

有关详细信息,请MS Docs