Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SSRS中的Javascript未正确处理数字符号_Javascript_Reporting Services_Ssrs 2008_Ssrs 2008 R2 - Fatal编程技术网

SSRS中的Javascript未正确处理数字符号

SSRS中的Javascript未正确处理数字符号,javascript,reporting-services,ssrs-2008,ssrs-2008-r2,Javascript,Reporting Services,Ssrs 2008,Ssrs 2008 R2,我正在SSRS中使用一些JavaScript代码在报告的新窗口中打开一个链接。报告链接指向服务器上的文件位置。我在Reporting Services中使用的链接代码是: ="javascript:void(window.open('"+ "file:" & Replace(Fields!FilePath.Value,"\","/") + "','_blank'))" 当文件名为“正常”时,此代码工作正常,例如: \\myserver\images\Files\1969\1-000-0

我正在SSRS中使用一些JavaScript代码在报告的新窗口中打开一个链接。报告链接指向服务器上的文件位置。我在Reporting Services中使用的链接代码是:

="javascript:void(window.open('"+ "file:" & Replace(Fields!FilePath.Value,"\","/") + "','_blank'))"
当文件名为“正常”时,此代码工作正常,例如:

\\myserver\images\Files\1969\1-000-002_SE 82ND AVE 1_1969.pdf
但是,当有特殊字符时(至少可以肯定),我会收到一条错误消息。事情就是这样。示例文件名为:

\\myserver\images\Files\1978\1-001-003_SE 82nd AVE #12 1_1978.pdf
在这种情况下,返回的URL是:

\\myserver\images\Files\1978\1-001-003_SE 82nd AVE 
可以看出,URL在数字符号的第一个实例处被截断。如果复制有问题链接的快捷方式,我会得到以下结果:

javascript:void(window.open('file://myserver/images/Files/1978/1-001-003_SE%2082nd%AVE%20#12%201_1978.pdf','_blank'))
JavaScript似乎正确地编码了文件路径,但是在JavaScript代码和URL之间的转换中丢失了一些东西

我无法更改文件名,因此我需要想出一种处理特殊字符的方法。我尝试过使用EncodeURI(),但不知道如何在SSRS中正确格式化它以使用现有的JavaScript


欢迎任何想法。

URL将识别HTML字符编号。因此,在JavaScript之外,对您希望找到的每个特殊字符使用SSRS replace函数,将每个字符替换为相应的HTML编号代码。例如,磅符号是%23;一个空格是%20

注意,我有一些页面使用磅符号来拆分URL参数,而这在这些情况下似乎不起作用。然而,它可能在你的情况下起作用。要尝试此操作,请将函数更改为以下内容:

="javascript:void(window.open('"+ "file:" & Replace(Replace(Fields!FilePath.Value,"\","/"),"#","%23") + "','_blank'))"

如果这对您有效,您可以找到更多这些代码。

这只是一个问题,但是如果您从文件名中省略#char会发生什么?如上所述,页面将成功呈现。但是,我无法更改文件名。