我的报告传递了用于访问salesforce.com的ID。我想从URL超链接打开SFDC作为新页面。但是,我所做的一切似乎都在起作用!
=“javascript:void(window.open('https://na5.salesforce.com/&字段!id.Value,'_ blank'))”
Fields!id!Value是正在传递的SFDC ID。我在表达中尝试这个无济于事!
我知道这很简单,但我只是找不到它。在此先感谢您的帮助!
UPDATE !!!
想出来!!!对于记录,语法为:
=“javascript:void(window.open('https://na5.salesforce.com/”& Fields!id.Value&“'))”
答案 0 :(得分:8)
对于记录,原始语法的问题在于您尝试从引用SSRS字段到输入字符串而不正确地分离两者。如果您希望以前的语法有效(不删除目标窗口的名称(即'_blank'),您可以这样做:
="javascript:void(window.open('https://na5.salesforce.com/" & Fields!id.Value & "','_blank'))"
我很长时间都在努力,但只要你小心翼翼地将所有东西放在一起,你就可以把它们变得非常复杂。您还可以在同一个动作表达式中添加多个javascript命令(但不包含任何函数)。下面是我最复杂的SSRS Go-to-URL Action命令之一:
="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 :(得分:4)
Nonono,请勿使用="javascript:void(window.open(
。
首先,它打破了PDF& Excel报告,
第二,它在IE11中不起作用,也可能< 11.
测试过它,仅适用于Chrome。
第三,把它放在一起很麻烦。
有一个更容易的&更好的解决方案:
将&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
如果您只想要数据源:
WHERE Type = 5
答案 2 :(得分:3)
如果您想要链接到外部URL并希望链接在报表查看器中工作,并且例如导出到Excel,则使用以下表达式。
=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,否则将使用标准链接。
答案 3 :(得分:0)
我已经看过很多次问过这个问题了,我想知道编写一个C#函数是否更容易进行调用以避免引用的复杂性。
答案 4 :(得分:0)
这是我用过的;它将在新选项卡中打开 ChildReport,其中包含一个参数凭证_id 及其从数据集传递的值。
="javascript:void window.open(" &"'"& Globals!ReportServerUrl &"/Pages/ReportViewer.aspx?"&Globals!ReportFolder &"/JournalVoucher&voucher_id="&Fields!account_voucher_id.Value &" ','_blank')"