7

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

这是有效的:

="https://some.domain.com/some_page/" + 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"
="\" + Fields!Custom_Page_Name.Value.ToString() + ".html"
4

5 回答 5

8

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

="javascript:void(window.navigate( '/mydirectory/reportcountry.aspx?CountryID=" + Fields!CountryID.Value.ToString() + "'))"
于 2011-11-28T03:21:29.140 回答
7

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

[rsInvalidURLProtocol] 文本框“textbox6”的超链接属性的值“test.html”具有无效架构。报告中的 URL 只能使用 http://、https://、ftp://、mailto: 或 news:

即 URL 必须具有这些协议之一,并且由于无法在以协议开头时编写相对 URL,这意味着 SSRS 不支持相对 URL。

另一种方法是在参数中设置基本 URL,然后可以轻松更改该参数,并且只需要在更改时重新生成您的 html 页面。

于 2009-10-27T13:41:00.367 回答
3
="javascript:void(window.open(document.URL.replace('CurrentReportName','NavigateToReportName'),'Window1','menubar=no,width=430,height=350,toolbar=no'));"

我知道这是一个旧帖子。它可能对某人有所帮助..注意:我使用的是 SSRS 2008

于 2011-12-01T18:47:11.300 回答
1

只需使用全局变量Globals!ReportServerUrl

所以"http://myservername/rs?/myreportname"变成 Globals!ReportServerUrl + "?/myreportname"

于 2014-10-15T17:58:09.267 回答
0

在带有 SQL Server Data Tools 的 Visual Studio 2013 中,您可以访问标签的属性页。这提供了链接到另一个报告(在同一项目中)并根据需要传递任何参数的选项:

属性页面的屏幕截图。

于 2016-08-04T15:55:35.963 回答