2009-10-20 7 views
4

Dans SSRS 2008, je souhaite créer une URL de chemin relatif. Longue histoire courte J'ai un abonnement qui produit quelques milliers de pages HTML statiques dans un dossier qui est utilisé comme contenu pour un site Web. Dans le passé, j'ai créé des URL complètes vers d'autres pages sur le site (sous-rapports, vraiment) en utilisant les propriétés de la zone de texte -> Action -> Aller à l'URL. Je voudrais modifier mon code pour qu'il renvoie le chemin relatif de la cible au lieu de l'URL complète. Cela réduira la probabilité que quelqu'un finira par interrompre la navigation en modifiant les structures de domaine ou de dossier du site Web. Lorsque j'ai essayé de faire ce travail, les objets qui étaient auparavant cliquables ne sont plus, bien, cliquables. Comment puis-je faire passer un lien hypertexte SSRS vers une URL relative au lieu d'une URL complète?SSRS: URL relative Hyperlien

est ici ce qui fonctionne:

="https://some.domain.com/some_page/" + Fields!Custom_Page_Name.Value.ToString() + ".html" 

est ici ce qui ne fonctionne pas:

="../" + 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

par rapport à la page en cours? – zzawaideh

+0

Par rapport au fichier de rapport rendu actuel qui se trouve sur un partage de fichiers quelque part. –

Répondre

4

Si vous regardez l'avertissement généré lorsque vous exécutez le rapport dans Visual Studio vous obtenez votre answer:

[rsInvalidURLProtocol] La valeur 'test.html' de la propriété Lien hypertexte de la zone de texte 'te' xtbox6 'a un schéma invalide. URL dans les rapports ne peuvent utiliser http: //, https: //, ftp: //, mailto: ou nouvelles:

-à-dire les URL doivent avoir un de ces protocoles, et comme il n'y a aucun moyen d'écrire un parent URL quand il commence avec le protocole qui signifie que SSRS ne supporte pas les URL relatives. Une alternative serait de définir l'URL de base dans un paramètre, qui serait alors facilement modifié et nécessiterait seulement la régénération de vos pages html si elle change.

+0

Pas ce que j'espérais entendre, mais je suis content de l'entendre. Je n'ai jamais remarqué les avertissements et cela répond définitivement à ma question. –

5

Il suffit de lire ce Q et A et avoir une meilleure solution pour tous ceux qui cherchent. Si vous voulez une URL relative, utilisez simplement javascript par exemple.

="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'));" 

Je sais qu'il est un ancien poste. il peut aider someone..Note: J'utilise SSRS 2008

0

utiliser juste variable globale Globals!ReportServerUrl

Alors "http://myservername/rs?/myreportname" devient Globals!ReportServerUrl + "?/myreportname"

0

Dans Visual Studio 2013 avec SQL Server Data Tools, vous pouvez accéder aux pages de propriétés une marque. Cela donne la possibilité de créer un lien vers un autre rapport (dans le même projet) et transmettre les paramètres au besoin:

Screenshot of property pages.