Может ли ReportViewer отображать гиперссылку с относительным путем?

Я создал локальный отчет для источника данных, в котором есть поле с именем «RelativePath». Когда мое приложение WinForms отображает отчет, оно экспортирует файлы в расположение, указанное в поле RelativePath. В построителе отчетов я установил для параметра Навигация|Действие гиперссылки|Перейти к URL-адресу значение «=Fields!RelativePath.Value» и установил для свойства отчета EnableHyperlink значение true. Однако всякий раз, когда мое приложение отображает отчет, гиперссылка не активна. Однако, если я жестко запрограммирую Jump to URL на абсолютный путь, он будет работать нормально. Разве ReportViewer не отображает гиперссылку с относительным путем?


person flipdoubt    schedule 30.12.2008    source источник


Ответы (3)


Я боролся с той же проблемой, после чего пришел к выводу, что средство просмотра отчетов не поддерживает гиперссылки с относительным путем. Чтобы решить эту проблему, добавьте пользовательский код, который извлекает относительный путь, а затем объединяется со значениями полей, которые вы можете захотеть сделать частью URL-адреса - по крайней мере, это работает для меня.

Шадди

person Community    schedule 07.01.2009
comment
Я пришел к такому же выводу. Вы говорите, что вам нужно превратить относительные URL-адреса в абсолютные URL-адреса, но я использую WinForms ReportViewer и мне нужны относительные URL-адреса, чтобы сделать отчет переносимым. В конце концов я сдался и просто написал HTML-файл. - person flipdoubt; 07.01.2009

Я столкнулся с той же проблемой. Чтобы обойти это, я создал параметр отчета под названием «AbsolutePath».

Перейдите в режим конструктора файла .rdlc. На вкладке «Данные отчета» вы увидите узел «Параметры». Щелкните правой кнопкой мыши, чтобы:

  1. Добавить параметр...
  2. На вкладке «Общие» введите «AbsolutePath» в свойстве «Имя».
  3. Нажмите «Значения по умолчанию».
  4. Выберите переключатель «Указать значения».
  5. Добавьте новое значение «Абсолютный путь».

В своем выражении действия TextBox добавьте что-то вроде этого ="javascript:void(window.open('" + Parameters!AbsolutePath.Value + "/yourpage.aspx?id=" + Fields!Id. Значение + "', '_blank'))"

Вы можете видеть, что новый параметр AbsolutPath доступен для добавления к вашему выражению.

Теперь вам нужно передать значение в параметр отчета, например.

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

Просто используйте глобальную переменную Globals!ReportServerUrl в выражении

= Globals!ReportServerUrl + "yourpath"
person Alex Z    schedule 15.10.2014