我有一份名为“债务报告”的报告。它每月运行一次,并通过订阅选项在每月的第一天生成一个 pdf。
如果我正在运行本月的报告,那么 pdf 的报告名称应该是“4 月的债务报告”,同样,如果我在 5 月运行它,那么 pdf 的名称应该是“5 月的债务报告”。
我怎样才能做到这一点?
我有一份名为“债务报告”的报告。它每月运行一次,并通过订阅选项在每月的第一天生成一个 pdf。
如果我正在运行本月的报告,那么 pdf 的报告名称应该是“4 月的债务报告”,同样,如果我在 5 月运行它,那么 pdf 的名称应该是“5 月的债务报告”。
我怎样才能做到这一点?
假设您将报告安排到文件共享,您可以将文件共享的名称设置为Debt Report for @timestamp
- 这将以Debt Report for
YYYY_MM_DD_HRMINSS格式命名文件。
如果您只希望月份名称(而不是整个时间戳)出现在文件名中,则需要使用Data Driven Subscription。
另一种选择,虽然有点技术性,是使用 rs.exe 实用程序来生成报告。这涉及:
创建一个生成报告的脚本文件(在这里您可以根据自己的喜好设置文件名)
创建一个以脚本文件为参数调用 rs.exe 的批处理文件
按计划运行批处理文件,例如使用 Windows 计划程序或 SQL Server 代理
这里有一个如何执行此操作的示例(创建 Excel 文件但原理相同)http://skamie.wordpress.com/2010/08/11/using-rs-exe-to-render-ssrs-报告/
此问题的解决方案是“数据驱动订阅” http://msdn.microsoft.com/en-us/library/ms169972(v=sql.105).aspx http://www.kodyaz.com/reporting-services /create-data-driven-subscription-in-sql-server.aspx
以下链接对我有很大帮助,但链接中给出的查询会产生问题 - 转换 getdate 的数据类型,它将解决问题
我不得不做同样的事情(差不多)
我必须生成一份每周报告来归档并将其保存为 REPORT-Week01.pdf,然后是 REPORT-Week02.pdf 等。
我使用的机制是通过计划作业更改计划表中的参数列。这计算了所需的文件名并简单地替换它。然后,当计划的作业运行时,它会在创建计划时写入文件名设置(除了在午夜后 1 分钟更改为我想要的文件名)
此后,我实现了另一组写入文件夹的报告,每个月都会更改下个月的文件夹名称(当前将所有报告写入名为 202103 的文件夹)今晚作业将运行,输出文件夹将更改为 202104 和预定的工作永远不需要改变