如何为SSRS报表添加运行日期参数至保存文件名
在SSRS报表服务器中为导出文件名自动添加运行日期的实现方案
手动导出(点击保存图标)的实现方式
SSRS默认的导出对话框不会自动填充带日期的文件名,但可以通过以下两种方式实现:
自定义报表代码+URL参数导出
- 打开报表设计器,右键报表空白区域选择「报表属性」(注意不是按F4调出的属性窗口),切换到「代码」标签页,添加VB自定义函数:
Public Function GetFormattedFileName() As String Return Me.Report.DisplayName & " - " & Format(Globals!ExecutionTime, "MM/dd/yyyy") End Function - 导出时,使用包含文件名参数的URL访问报表,示例URL:
访问这个URL后,点击导出按钮时,文件名会自动带上运行日期。http://你的报表服务器地址/ReportServer/Pages/ReportViewer.aspx?/报表路径/报表名称&rs:Command=Render&rs:Format=PDF&rc:FileName==Code.GetFormattedFileName()
- 打开报表设计器,右键报表空白区域选择「报表属性」(注意不是按F4调出的属性窗口),切换到「代码」标签页,添加VB自定义函数:
浏览器脚本辅助(适合频繁手动导出的场景)
如果不想每次使用URL,可以给浏览器添加用户脚本(比如Tampermonkey),监听报表导出对话框的弹出事件,自动在文件名末尾追加当前日期。脚本逻辑示例:// 监听导出对话框,自动添加日期 document.addEventListener('DOMContentLoaded', function() { setInterval(function() { var saveDialog = document.querySelector('[id*="SaveAs"]'); if (saveDialog && saveDialog.value.indexOf('-') === -1) { var date = new Date(); var formattedDate = (date.getMonth()+1).toString().padStart(2,'0') + '/' + date.getDate().toString().padStart(2,'0') + '/' + date.getFullYear(); saveDialog.value = saveDialog.value + ' - ' + formattedDate; } }, 500); });
自动订阅导出的实现方式
如果是定期自动生成报表,创建订阅时直接设置文件名表达式即可:
- 打开报表订阅设置,找到「文件名」输入框,点击旁边的表达式按钮(fx)
- 输入表达式:
=Globals!ReportName & " - " & Format(Globals!ExecutionTime, "MM/dd/yyyy") - 保存订阅后,每次订阅生成的文件都会自动带上运行日期。
内容的提问来源于stack exchange,提问作者jr7138
相关产品推荐
相关产品推荐

