如何更改导出的 SSRS 报告的文件名

how to change filename of exported SSRS report

我已经创建了 SSRS 报告,想更改文件名并添加日期。非常感谢您的帮助。

已经尝试 https://reportsyouneed.com/ssrs-adding-date-to-exported-filenames/ 解决方案,但它不起作用。

我找到了这个问题的完美解决方案。 This link 只有在导出前不需要参数时才有效(非常好)。

此 link 中的代码尝试在您单击文件时获取文件名,这意味着下载尚未准备好并报告正在寻找初始输入。

但是我的文件开头有日期参数需要输入。 所以我修改代码以等待下载可用并添加到 "C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\js\ReportingServices.js" 文件

的末尾
function ModifyExportFileName(){
var rv=null;
var r= null;
var today =new Date();
var day= ("0" + today.getDate()).slice(-2);
var month = ("0"+ (today.getMonth() + 1)).slice(-2); 
var year = ("0"+ today.getFullYear()).slice(-2);
var text= "DD";
try{        
    rv=this.$find("ctl31");
        r=rv._getInternalViewer();
        var url=r.ExportUrlBase;
        var i = url.indexOf("FileName=");


    }
    catch(err)
        {
        //console.log(err);
        setTimeout(ModifyExportFileName,2000);
        return;
        }
    if(r==null)
        {
        setTimeout(ModifyExportFileName,2000);
        return;
        }
    else 
        {
        var url=r.ExportUrlBase;
        var i = url.indexOf("FileName=");
        var j = url.indexOf("&",i+1);
        var oldFileName= url.substring(i+9,j);
        var filename=text.concat(year,month,day)
        r.ExportUrlBase= url.substring(0,i) + 'FileName=' + filename+ url.substring(j);
        }
//console.log(filename);
setTimeout(ModifyExportFileName,2000);
}
ModifyExportFileName();

我需要日期作为文件名,所以日期被添加为 "filename"。您可以根据需要更改它

一个简单的替代方案可能是

为每次交付创建唯一文件的另一种方法是在文件名中包含时间戳。为此,将@timestamp 变量添加到文件名中(例如,CompanySales@timestamp)。使用这种方法,文件名根据定义是唯一的,因此永远不会被覆盖。

https://docs.microsoft.com/en-us/sql/reporting-services/subscriptions/file-share-delivery-in-reporting-services?view=sql-server-ver15