2009-10-20 3 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

+0

Относительно текущего отображаемого файла отчета, который находится где-то на файловом ресурсе. –

ответ

4

Если вы посмотрите на предупреждение генерируется при запуске отчета в Visual Studio, вы получите ваш ответ:

[rsInvalidURLProtocol] Значение «test.html» свойства Hyperlink в текстовом поле «te» xtbox6 'имеет недопустимую схему. URL-адрес в отчетах можно использовать только HTTP: //, https: //, FTP: //, электронная почта: или новости:

т.е. URL-адрес должен иметь один из этих протоколов, и с тех пор нет никакого способа написания родственника URL, когда он начинается с протокола, что означает, что SSRS не поддерживает относительные URL-адреса.

Альтернативой может быть установка базового URL-адреса в параметре, который затем будет легко изменен и потребует регенерации ваших html-страниц, если он изменится.

+0

Не то, что я надеялся услышать, но я рад это слышать. Я никогда не замечал предупреждений, и это окончательно отвечает на мой вопрос. –

5

Просто прочитайте это Q и A и получите лучшее решение для тех, кто ищет. Если вам нужен относительный URL-адрес, просто используйте 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 Data вы можете получить доступ к страницам свойств для метка. Это дает возможность сделать ссылку на другой отчет (в том же проекте) и передавать любые необходимые параметры:

Screenshot of property pages.

Смежные вопросы