新窗口中的SSRS打开URL Javascript函数无法使用动态URL字符串

时间:2016-06-01 23:04:03

标签: javascript url reporting-services ssrs-2012

我正在使用javascript:void(window.open('" & URL & "','_blank'))在新窗口中打开网址。我已经多次使用它,除非使用动态参数值构建URL字符串,否则它可以正常工作。

有效:

我尝试在SSRS操作上打开的网址如下:

SSRSserveraddress/Headcount.rdl&pBusinessUnit=" & Fields!BusinessUnit.Value & "&pCalendar=" & **Code.URLEncode**("[Monthly Calendar].[Monthly Calendar].[Month].&[" & Fields!MonthYear.Value &"])

使用上述URL时,SSRS操作(转到URL)表达式有效。它使用自定义Code.URLEncode(请参阅下面的说明)并正确传递日历参数。

什么行不通:

问题是我需要在新窗口中打开此URL。这是我正在使用的Javascript操作:

javascript:void(window.open('"SSRSserveraddress/Headcount.rdl&pBusinessUnit=" & Fields!BusinessUnit.Value & "&pCalendar=" & Code.URLEncode("[Monthly Calendar].[Monthly Calendar].[Month].&[" & Fields!MonthYear.Value &"]") & "','_blank'))

使用上面的javascript函数时出现以下错误:

The item 'SSRSServeraddress/Headcount.rdl,[January 2016]' cannot be found

其他信息:

有趣的是,如果我没有调用Code.URLEncode函数,则上面的javascript函数可以正常工作。

这样可行:

javascript:void(window.open('"SSRSserveraddress/Headcount.rdl&pBusinessUnit=" & Fields!BusinessUnit.Value & "','_blank'))

Code.URLEncode函数是我报告中的自定义代码。此函数的目标是解析任何特殊字符(%,[,等)并将它们转换为unicode值,以便SSRS URL访问起作用。

Public Function URLEncode (ByVal inURL As String) As String
Dim outURL As String
outURL = System.Web.HttpUtility.UrlEncode(inURL).ToString
Return outURL
End Function

我真的陷入了如何解决这个问题的想法......任何帮助都会非常感激!!

0 个答案:

没有答案