我们正在将报告从Crystal Reports
迁移到SSRS
。在Crystal Reports中,我们使用变量来动态生成我们的文件名,因此当报告通过电子邮件发送时,该文件具有报告名称和执行日期。 (例如MonthlyReport09-07-2012.xls
)。
这在SSRS中是否可行?在订阅报告时,我没有看到任何直接的方法在文件名中使用变量。当向同一个人发送具有相同文件名的多个报告时,这可能会很麻烦,因为很难辨别哪个报告是哪个。
非常感谢任何帮助。谢谢你。
答案 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报告的工具:CRD,R-Tag和RemiWare
这些是桌面工具,但我想你不是要替换SSRS,只是为了扩展它。
我不确定CRD和RemiWare,但R-Tag支持数据驱动的报告和动态名称。它也可以与标准许可证一起使用。
答案 4 :(得分:0)
@timestamp适用于Windows文件共享,由Chris回答。
对于电子邮件递送,您可以使用:
@ReportName - 指定报告的名称。
@ExecutionTime - 指定执行报告的时间。
有关详细信息,请MS Docs