如何更改导出的 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)。使用这种方法,文件名根据定义是唯一的,因此永远不会被覆盖。
我已经创建了 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)。使用这种方法,文件名根据定义是唯一的,因此永远不会被覆盖。