2008-12-30 99 views
0

我已經在一個名爲「RelativePath」的字段的數據源上創建了一個本地報告。當我的WinForms應用程序呈現報表時,它將文件導出到RelativePath字段中指定的位置。在報告生成器中,我將Navigation | Hyperlink action | Jump to URL設置爲「= Fields!RelativePath.Value」,並將報告的EnableHyperlink屬性設置爲true。但是,每當我的應用程序呈現報表時,超鏈接都不會處於活動狀態。但是,如果我將Jump to URL硬編碼爲絕對路徑,那麼它工作得很好。 ReportViewer是否不使用相對路徑呈現超鏈接?ReportViewer可以渲染一個具有相對路徑的超鏈接嗎?

回答

1

我一直在努力解決相同的問題,之後我得出結論,reportviewer不支持超鏈接與相對路徑。 解決此問題的方法是添加一個自定義代碼,用於檢索相對路徑,然後使用您希望成爲URL一部分的字段值進行協調 - 至少適合我。

Shaddie

+0

我得出了同樣的結論。你說你必須將相對URL變成絕對URL,但我使用WinForms ReportViewer並需要相對URL來使得呈現的報表具有可移植性。最後,我放棄了,只是寫出了一個HTML文件。 – flipdoubt 2009-01-07 13:03:00

1

我遇到了同樣的問題。爲了解決這個問題,我創建了一個名爲「AbsolutePath」的報告參數。

轉到.rdlc文件的設計視圖。在「報告數據」選項卡上,您會看到一個「參數」節點。右鍵點擊它來:

  1. 添加參數...
  2. 在常規選項卡,在Name屬性中輸入 「AbsolutePath」。
  3. 單擊「默認值」
  4. 選擇「指定值」單選按鈕。
  5. 添加新的值「AbsolutePath」。

在你的文本框的動作表情,加上這樣的事情!=! 「的javascript:無效(window.open('」 + 參數AbsolutePath.Value + 「/yourpage.aspx?id=」 +字段標識.Value +「','_blank'))」

您可以看到新的「AbsolutPath」參數可用於添加到表達式中。

現在,您需要將值傳遞給報告的參數,如下所示。

string baseUrl = Request.Url.GetLeftPart(UriPartial.Authority); 
    var param = new ReportParameter("AbsolutePath", baseUrl); 
    this.ReportViewer.LocalReport.SetParameters(param); 
0

只需使用全局變量Globals!ReportServerUrl在表達

= Globals!ReportServerUrl + "yourpath"