我正在使用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
我真的陷入了如何解决这个问题的想法......任何帮助都会非常感激!!