Reporting services SQL Server Reporting Services 2017-更改导出文件名
我计划从2012年起升级到SQL Server 2017 Reporting Services 在我的公司已经使用了几年的2012版中,我们添加了一个扩展 这使我们能够在用户将报告导出为PDF、Excel等时修改文件名,。。。 因此,我们得到的不是文件名StudentReport\u Student\u Name.PDF,而是StudentReport\u Student\u Name.PDF 为了管理这一点,我们在每个报告的页脚中添加了一个隐藏字段,FileNameExtend=[[Student Name]]为白色文本,因此 除非更改文本的颜色,否则不会看到它 然后将以下JavaScript代码添加到服务器上的ReportingServices.js中Reporting services SQL Server Reporting Services 2017-更改导出文件名,reporting-services,export-to-pdf,Reporting Services,Export To Pdf,我计划从2012年起升级到SQL Server 2017 Reporting Services 在我的公司已经使用了几年的2012版中,我们添加了一个扩展 这使我们能够在用户将报告导出为PDF、Excel等时修改文件名,。。。 因此,我们得到的不是文件名StudentReport\u Student\u Name.PDF,而是StudentReport\u Student\u Name.PDF 为了管理这一点,我们在每个报告的页脚中添加了一个隐藏字段,FileNameExtend=[[Stude
function ModifyExportUrlBase() {
var rv = null;
var r = null;
try {
rv = this.$find("ctl31");
r = rv._getInternalViewer();
}
catch (err) {
setTimeout(ModifyExportUrlBase, 1000)
return;
}
if (r != null && r.ExportUrlBase != null) {
// Search for FileNameExtension in all div elements
var fileNameExtend = function () {
var divElements = document.getElementsByTagName("div");
var result = '';
for (var i = 0; i < divElements.length; i++) {
if (divElements[i].innerText.indexOf("FileNameExtend=[[") > -1 && divElements[i].innerText.indexOf("]]") > -1) {
var istart = divElements[i].innerText.indexOf("[[");
var istop = divElements[i].innerText.indexOf("]]");
result = divElements[i].innerText.substring(istart + 2, istop);
}
}
return String(result);
}();
// Change ExportUrlBase if fileNameExtend exist
if (fileNameExtend != null && fileNameExtend.length > 0) {
var url = r.ExportUrlBase;
var i = url.indexOf("FileName=");
var j = url.indexOf("&", i + 1);
var fileName = url.substring(i, j) + '_' + encodeURI(fileNameExtend);
r.ExportUrlBase = r.ExportUrlBase.substring(0, i) + fileName + r.ExportUrlBase.substring(j, r.ExportUrlBase.length);
}
}
else {
setTimeout(ModifyExportUrlBase, 1000);
}
}
ModifyExportUrlBase();
函数ModifyExportUrlBase(){
var-rv=null;
var r=null;
试一试{
rv=此。$find(“ctl31”);
r=rv._getInternalViewer();
}
捕捉(错误){
setTimeout(ModifyExportUrlBase,1000)
返回;
}
如果(r!=null&&r.ExportUrlBase!=null){
//在所有div元素中搜索FileNameExtension
var fileNameExtend=函数(){
var divElements=document.getElementsByTagName(“div”);
var结果=“”;
对于(var i=0;i-1&&divElements[i].innerText.indexOf(“]]”)>-1){
var istart=divElements[i].innerText.indexOf(“[]”);
var istop=divElements[i].innerText.indexOf(“]]”);
结果=divElements[i].innerText.substring(istart+2,istop);
}
}
返回字符串(结果);
}();
//如果存在fileNameExtend,则更改ExportUrlBase
if(filenamextend!=null&&filenamextend.length>0){
var url=r.ExportUrlBase;
var i=url.indexOf(“FileName=”);
var j=url.indexOf(“&”,i+1);
var fileName=url.substring(i,j)+'.'+encodeURI(filenamextend);
r、 ExportUrlBase=r.ExportUrlBase.substring(0,i)+fileName+r.ExportUrlBase.substring(j,r.ExportUrlBase.length);
}
}
否则{
setTimeout(ModifyExportUrlBase,1000);
}
}
ModifyExportUrlBase();
2017年报告服务的实施方式似乎与2012年大不相同。
是否有人找到了实现此功能的方法