SSRS:相对URL超链接

Reg*_*ser 6 reporting-services ssrs-2008

在SSRS 2008中,我想创建一个相对路径URL.长话短说我有一个订阅,它将几千个静态HTML页面输出到一个用作网站内容的文件夹.在过去,我使用文本框属性 - >操作 - >转到URL,为网站上的其他页面创建了完整的URL(实际上是子报告).我想修改我的代码,以便它返回目标的相对路径而不是完整的URL.这将通过更改网站域或文件夹结构来减少某人最终破坏导航的可能性.当我尝试使这项工作时,之前可点击的对象不再是可点击的. 如何使SSRS超链接跳转到相对URL而不是完全限定的URL?

这是有效的:

="https://some.domain.com/some_page/" + Fields!Custom_Page_Name.Value.ToString() + ".html"
Run Code Online (Sandbox Code Playgroud)

这是不起作用的:

="../" + Fields!Custom_Page_Name.Value.ToString() + ".html"
="/" + Fields!Custom_Page_Name.Value.ToString() + ".html"
=Fields!Custom_Page_Name.Value.ToString() + ".html"
="..\" + Fields!Custom_Page_Name.Value.ToString() + ".html"
="\" + Fields!Custom_Page_Name.Value.ToString() + ".html"
Run Code Online (Sandbox Code Playgroud)

小智 6

如果查看在Visual Studio中运行报表时生成的警告,您将得到答案:

[rsInvalidURLProtocol]文本框'textbox6'的Hyperlink属性的值'test.html'具有无效的架构.报告中的URL只能使用http://,https://,ftp://,mailto:或news:

即URL必须具有这些协议之一,并且因为当它以协议开始时无法编写相对URL,这意味着SSRS不支持相对URL.

另一种方法是在参数中设置基本URL,然后可以轻松更改,只需要重新更新html页面.


小智 6

只需阅读此Q和A,并为任何人寻找更好的解决方案.如果你想要相对网址,那么只需使用javascript,例如

="javascript:void(window.navigate( '/mydirectory/reportcountry.aspx?CountryID=" + Fields!CountryID.Value.ToString() + "'))"
Run Code Online (Sandbox Code Playgroud)