2009-10-20 139 views
4

在SSRS 2008中,我想創建一個相對路徑URL。長話短說我有一個訂閱,可以將數千靜態HTML頁面輸出到用作網站內容的文件夾。在過去,我使用文本框屬性 - >操作 - >轉到URL,爲網站上的其他頁面(實際上是子報表)創建完整的URL。我想修改我的代碼,以便返回目標的相對路徑而不是完整的URL。這將減少有人最終通過更改網站域或文件夾結構來破壞導航的可能性。當我試圖完成這項工作時,先前可點擊的對象不再可以點擊。 如何使SSRS超鏈接跳轉到相對URL而不是完全限定的URL?SSRS:相對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" 
+0

相對於當前頁面? – zzawaideh 2009-10-23 17:03:19

+0

相對於坐在文件共享位置上的當前呈現報告文件。 – 2009-10-24 00:48:04

回答

4

如果你看一下警告生成當您運行Visual Studio中的報告,你會得到你的回答:

[rsInvalidURLProtocol]文本框'te'的超鏈接屬性值'test.html' xtbox6'有一個無效的模式。報告中的網址只能使用http://,https://開頭,FTP://,至mailto:或新聞:

即URL必須有這些協議之一,而因爲沒有寫一個相對的方式URL以協議開頭時表示SSRS不支持相對URL。

另一種方法是在一個參數中設置基本URL,然後這個參數很容易改變,並且只需要重新生成你的html頁面。

+0

不是我希望聽到的,但我很高興聽到它。我從來沒有注意到這些警告,這有力地回答了我的問題。 – 2009-10-27 19:15:33

5

只要閱讀本Q和A,併爲任何尋找的人提供更好的解決方案。如果你想要相對的網址,那麼只需使用JavaScript

="javascript:void(window.navigate('/mydirectory/reportcountry.aspx?CountryID=" + Fields!CountryID.Value.ToString() + "'))" 
3
="javascript:void(window.open(document.URL.replace('CurrentReportName','NavigateToReportName'),'Window1','menubar=no,width=430,height=350,toolbar=no'));" 

我知道這是一個老帖子。它可以幫助someone..Note:我使用SSRS 2008

0

只需使用全局變量Globals!ReportServerUrl

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

0

在Visual Studio 2013和SQL Server數據工具你可以訪問屬性頁一個標籤。這使鏈接到另一個報告(在同一個項目),並傳遞任何參數所需要的選項:

Screenshot of property pages.