0

我已经在具有名为“RelativePath”的字段的数据源上创建了一个本地报告。当我的 WinForms 应用程序呈现报表时,它会将文件导出到相对路径字段中指定的位置。在报表生成器中,我将 Navigation|Hyperlink action|Jump to URL 设置为“=Fields!RelativePath.Value”,并将报表的 EnableHyperlink 属性设置为 true。但是,每当我的应用程序呈现报告时,超链接都处于非活动状态。但是,如果我将跳转到 URL 硬编码为绝对路径,它就可以正常工作。ReportViewer 是否不呈现具有相对路径的超链接?

4

3 回答 3

1

我一直在努力解决同样的问题,之后我得出结论,reportviewer 不支持具有相对路径的超链接。解决这个问题的方法是添加一个自定义代码,该代码检索相对路径,然后与您可能希望成为 URL 一部分的字段值连接 - 至少对我有用。

沙迪

于 2009-01-07T07:16:37.500 回答
1

我遇到了同样的问题。为了解决这个问题,我创建了一个名为“AbsolutePath”的报告参数。

转到 .rdlc 文件的设计视图。在“报告数据”选项卡上,您将看到一个“参数”节点。右键单击它以:

  1. 添加参数...
  2. 在常规选项卡上,在名称属性中输入“AbsolutePath”。
  3. 点击“默认值”
  4. 选择“指定值”单选按钮。
  5. 添加新值“AbsolutePath”。

在您的文本框的操作表达式中,添加类似这样的内容 ="javascript:void(window.open('" + Parameters!AbsolutePath.Value + "/yourpage.aspx?id=" + Fields!Id.Value + "', '_blank '))”

您可以看到新的“AbsolutPath”参数可添加到您的表达式中。

现在,您需要将值传递给报告的参数,就像这样。

    string baseUrl = Request.Url.GetLeftPart(UriPartial.Authority);
    var param = new ReportParameter("AbsolutePath", baseUrl);
    this.ReportViewer.LocalReport.SetParameters(param);
于 2013-07-11T19:50:47.913 回答
0

只需Globals!ReportServerUrl在表达式中使用全局变量

= Globals!ReportServerUrl + "yourpath"
于 2014-10-15T18:02:56.087 回答