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

时间:2019-07-01 23:59:27

标签: export ssrs-2008 filenames

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

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

2 个答案:

答案 0 :(得分:2)

一个简单的选择可能是

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

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

答案 1 :(得分:0)

对于此问题,我有一个完美的解决方案。 This 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();

我需要使用日期作为文件名,因此将日期添加为“文件名”。您可以根据需要进行更改