7

SSRS 2008 では、相対パス URL を作成したいと考えています。簡単に言えば、Web サイトのコンテンツとして使用されるフォルダーに数千の静的 HTML ページを出力するサブスクリプションがあります。過去に、テキスト ボックスのプロパティ -> アクション -> URL に移動 を使用して、サイト上の他のページ (実際にはサブレポート) への完全な URL を作成しました。完全な URL ではなく、ターゲットの相対パスを返すようにコードを変更したいと考えています。これにより、誰かが最終的に Web サイトのドメインやフォルダー構造を変更してナビゲーションを壊す可能性が低くなります。これを機能させようとしたところ、以前はクリック可能だったオブジェクトが、もはやクリック可能ではなくなりました。 SSRS ハイパーリンクを完全修飾 URL ではなく相対 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"
4

5 に答える 5

8

このQとAを読んで、探している人にとってより良い解決策を見つけてください. 相対URLが必要な場合は、JavaScriptなどを使用してください

="javascript:void(window.navigate( '/mydirectory/reportcountry.aspx?CountryID=" + Fields!CountryID.Value.ToString() + "'))"
于 2011-11-28T03:21:29.140 に答える
7

Visual Studio でレポートを実行したときに生成された警告を見ると、答えが得られます。

[rsInvalidURLProtocol] テキスト ボックス 'textbox6' の Hyperlink プロパティの値 'test.html' のスキーマが無効です。レポートの URL には、http://、https://、ftp://、mailto:、または news: のみを使用できます。

つまり、URL にはこれらのプロトコルの 1 つが必要であり、プロトコルで始まる相対 URL を記述する方法がないため、SSRS は相対 URL をサポートしていません。

別の方法として、パラメーターにベース URL を設定する方法があります。これは簡単に変更でき、変更された場合にのみ HTML ページを再生成する必要があります。

于 2009-10-27T13:41:00.367 に答える
3
="javascript:void(window.open(document.URL.replace('CurrentReportName','NavigateToReportName'),'Window1','menubar=no,width=430,height=350,toolbar=no'));"

私はそれが古い投稿であることを知っています。それは誰かを助けるかもしれません..注:私はSSRS 2008を使用しています

于 2011-12-01T18:47:11.300 に答える
1

グローバル変数を使用するだけですGlobals!ReportServerUrl

そう"http://myservername/rs?/myreportname"なる Globals!ReportServerUrl + "?/myreportname"

于 2014-10-15T17:58:09.267 に答える