我们正在将报告从 迁移Crystal Reports
到SSRS
. 在 Crystal Reports 中,我们使用变量动态生成我们的文件名,因此当通过电子邮件发送报告时,该文件具有报告名称和执行日期。(例如MonthlyReport09-07-2012.xls
)。
这在SSRS中可能吗?在订阅报告时,我看不到任何直接在文件名中使用变量的方法。当向同一个人发送多个具有相同文件名的报告时,这可能会很麻烦,因为很难辨别哪个报告是哪个。
任何帮助是极大的赞赏。谢谢你这么。
我们正在将报告从 迁移Crystal Reports
到SSRS
. 在 Crystal Reports 中,我们使用变量动态生成我们的文件名,因此当通过电子邮件发送报告时,该文件具有报告名称和执行日期。(例如MonthlyReport09-07-2012.xls
)。
这在SSRS中可能吗?在订阅报告时,我看不到任何直接在文件名中使用变量的方法。当向同一个人发送多个具有相同文件名的报告时,这可能会很麻烦,因为很难辨别哪个报告是哪个。
任何帮助是极大的赞赏。谢谢你这么。
SSRS 中没有这样的功能,但有一个解决方法。您有两个选项
选项 1:
与其直接通过电子邮件发送它,不如先将文件转储到文件共享位置,该位置可能类似于 \machine-name\ExportReports\ReportName\ 然后创建一个 Windows 作业,将文件重命名为您想要的格式并通过电子邮件发送在下一步中。
选项 2:
请参阅此博客您想要的内容从“以编程方式生成 PDF 输出文件”部分开始,现在您可以在程序集中使用它,然后有一些调度机制来获取时间表。然后调用生成报告并通过电子邮件发送报告的 DLL。
在文件名中使用@timestamp,它将在运行时进行翻译。
您不能在 Reporting Services 的标准订阅中指定报告文件名。
如果您有企业版(或 SQL 2012 商业智能版),则可以使用数据驱动订阅功能,该功能允许您根据从表中检索到的数据指定报告文件名(和其他属性)。
如果您有标准版,那么您的选项是 Bhupendra 建议的选项之一,或者您可以查看使用 Reporting Services 提供的“rs.exe”实用程序编写报告生成脚本并使用数据库邮件和 SQL Server 代理来处理电子邮件和日程安排。
我能够通过循环通过帐户、发票和电子邮件表来自动发送电子邮件并更改文件名,然后设置参数并重命名目录中的报告名和路径名在执行结束后执行我做了等待持续 2 秒,然后何时进入下一个循环。最后我将路径和名称设置回原始名称。表现不错。
@timestamp 适用于 Chris 回答的 Windows 文件共享。
对于电子邮件递送,您可以使用:
@ReportName - 指定报告的名称。
@ExecutionTime - 指定执行报告的时间。
有关更多详细信息 - MS Docs