2013-08-01 27 views
10

salesforce.comにアクセスするために使用されるIDを渡すレポートがあります。 URLハイパーリンクから新しいページとしてSFDCを開きたいしかし、私は何もしていないようです!新しいウィンドウでSSRS URLを開く

= "ジャバスクリプト:無効(空白window.open(」!https://na5.salesforce.com/&フィールズid.Value、 '_'))"!!

フィールドID値が渡されているSFDC IDです。私はこの表現を無駄にしようとしています!

私はそれが非常にシンプルなものだと知っていますが、私はそれを見つけていません。助けを前にありがとう!

UPDATE !!!

記録のために、構文は次のとおりです。

= "ジャバスクリプト:無効(window.open( 'https://na5.salesforce.com/"!&フィールドid.Value & "'))" レコードの

答えて

6

、あなたの元に問題あなたがSSRSフィールドを参照することから、2つを適切に分離することなく文字列を入力しようとしていたという構文でした。あなたは(すなわち、)「_blank」ターゲットウィンドウの名前を削除せずに(仕事をする以前の構文を望んでいた場合、あなたはこのようにそれを行うだろう:

="javascript:void(window.open('https://na5.salesforce.com/" & Fields!id.Value & "','_blank'))" 

私は長い間これで苦労していますが、作ることができます以下は、すべてのものを正しく組み合わせるように注意している限り、かなり複雑です。同じアクション式に複数のjavascriptコマンドを追加できます(ただし、関数はありません)。以下は、最も複雑なSSRS Go-to-URLアクションコマンドの1つです。

="Javascript:" 
    & IIF(left(Fields!Name.Value,11)="RESTRICTED-", 
     "alert('Restricted!'); ","") & IIF(Fields!Name_Alert.Value = 1, "alert('Alternate Alert!'); ","") 
    & "void(window.open('" 
    & Globals!ReportServerUrl 
    & "/Pages/ReportViewer.aspx?%2fJPD%2fPO_Dashboard%2fJuvenile_Profile&rs:Command=Render" 
    & "&rc:Parameters=true" 
    & "&Emp_Number=" 
    & Parameters!Param1.Value 
    & “&ID=" & Fields!ID.Value & "'));" 

キーは(すなわち、「'」)の任意およびすべての必要な単一引用符は文字列内のjavascriptショーでアップに必要なことを確認することです。

+1

Stefan SteigerがPDFとExcelのレポートに関して述べたように、URLのJavaScript部分をIIFステートメントにカプセル化すると、組み込みのRenderFormatフィールドを使用してPDFまたはExcelバージョンにエクスポートするとJavaScriptが削除されますSSRS 2008 R2以降。 2008年以前を使用している場合は、ブール値パラメータを使用して同じ結果を得ることができます。方法についての質問がある場合は、このコメントに返信してください。 –

0

私はこの質問を何度も聞いたことがあると思いますが、引用の複雑さを避けるためにこの呼び出しを行うためのC#関数を書いた方が簡単でしょうか。

1

ノノノ、使用しないでください="javascript:void(window.open(
まず、それはPDF & Excelが報告され、
を破壊し、第二、それはIE11では動作しませんし、可能性も それは、私のためにChromeでのみ働いていたテスト済み。
第三に、それをまとめるのは難しいことです。はるかに簡単&よりよい解決策があります


は次のように、レポートへのアクセスURLに&rc:LinkTarget=_blankを追加します。

https://your-domain.com/ReportServer/Pages/ReportViewer.aspx?%2fJPD%2fPO_Dashboard%2fJuvenile_Profile&rs:Command=Render&rc:LinkTarget=_blank 

、それが新しいウィンドウで開きます。

編集:
独自の表示ページを作成する場合:

USE [ReportServer$MSSQL_2008_R2] 

SELECT 
    [ItemID] 
    ,[Path] 
    ,[Name] 
    ,[ParentID] 
FROM [Catalog] 
WHERE Type = 2 

そして、これはあなたがすべてのフォルダ/レポートを表示する方法です。

これは、あなたがすべてのレポートを取得する方法でありますレベルx

;WITH CTE AS 
(
    SELECT 
     [ItemID] 
     ,[Path] 
     ,[Name] 
     ,[ParentID] 
     ,0 AS lvl 
     ,CAST([Name] AS nvarchar(MAX)) AS RecursivePath 
    FROM [Catalog] 
    WHERE [ParentID] IS NULL 


    UNION ALL 

    SELECT 
     [Catalog].[ItemID] 
     ,[Catalog].[Path] 
     ,[Catalog].[Name] 
     ,[Catalog].[ParentID] 
     ,cte.lvl +1 AS lvl 
     ,CAST(cte.RecursivePath + '/' + [Catalog].[Name] AS nvarchar(MAX)) AS RecursivePath 
    FROM CTE 
    INNER JOIN [Catalog] 
     ON [Catalog].ParentID = CTE.ItemID 



) 

SELECT * FROM CTE 
WHERE lvl = 1 
ORDER BY lvl, Path 

フォルダのみを使用する場合:

WHERE Type = 1 

あなただけのデータ・ソースが必要な場合:

あなたがExcelにエクスポートする場合は、外部URLにリンクしたいとのリンクはレポートビューア内の両方を操作したいとしている場合
WHERE Type = 5 
+0

@Timbo:ブラウザーを開いてhttp://your-domain.com/ReportServerまたはhttp:// machine-name/ReportServerを使用してローカル/イントラネットにアクセスするときに、アクセスURLを特定します。また、reportserverデータベースからすべてのリンクを読み取ることもできます。レポートサーバーにインスタンス名以外の名前がある場合(例: MSSQL_2008_R2、つまりhttp:// localhost/ReportServer_MSSQL_2008_R2になります。 RS 2005では、それは途中でReportServer $ MSSQL_2005でしたが、$から_への変更に気づくでしょう。 –

1

たとえば、次の式を使用します。

=IIF(
    Globals!RenderFormat.Name = "RPL", 
"javascript:void(window.open('http://www.domain.com/page/" & Fields!Page_ID.Value & "','_blank'))", 
    "http://www.domain.com/page/" & Fields!Page_ID.Value 
) 

ブラウザのレポート内で表示する場合はJavaScriptを使用し、それ以外の場合は標準のリンクを使用します。

関連する問題