使用Javascript在ssrs中创建弹出子报告不起作用
您好,我已经使用SSRS 10年了,但有一段时间不必使用转到URL操作方法来传递SSRS报告和参数(2008R2)。所以概念可能已经改变了等等 我的充分表达是基于各种各样的帖子,比如这篇文章和这个问题,但不起作用 我的全部表情是使用Javascript在ssrs中创建弹出子报告不起作用,javascript,reporting-services,ssrs-2016,Javascript,Reporting Services,Ssrs 2016,您好,我已经使用SSRS 10年了,但有一段时间不必使用转到URL操作方法来传递SSRS报告和参数(2008R2)。所以概念可能已经改变了等等 我的充分表达是基于各种各样的帖子,比如这篇文章和这个问题,但不起作用 我的全部表情是 ="javascript:void(window.open(‘http://MyServer/ReportServer/Pages/ReportViewer.aspx?%2fMyFolderPath%2fMyReport&rs:Command=Render&am
="javascript:void(window.open(‘http://MyServer/ReportServer/Pages/ReportViewer.aspx?%2fMyFolderPath%2fMyReport&rs:Command=Render&DocEntry="& Fields!GrnDocEntry.Value & "&DocLineNum="& Fields!LineNum.Value &"&rc:Toolbar=false', null, 'width=795, height=490, status=no, toolbar=no, menubar=no, location=no'))"
当然,我在家工作,所以没有人发现任何打字错误,所以我尝试了一个简单的版本
="javascript:void window.open (‘https://stackoverflow.com/questions/18003013/open-ssrs-url-in-new-window','_blank','resizeable=1,toolbar=0,status=0,menu=0,top=20,left=20,width=740,height=730')"
然而,两者都不起作用,这让我发疯,所以我有两个问题
我可以使用“转到报告”功能,但它会在同一个窗口选项卡中打开,当我返回主报告时,所有多个参数都会重置为默认值,这会让用户感到沮丧我经常从数据库获取URL,所以我只检查URL是否为空,但除此之外,我没有做任何特别的事情。这是我几天前在一份报告中使用的超链接表达式
= "javascript:void(window.open('" & IIF(LEN(TRIM(Fields!URL.Value)) > 0 , Fields!URL.Value , "") & "','_blank'))"
正如您所看到的,它实际上什么也不做,并且会返回类似于
javascript:void(window.open('https://stackoverflow.com','_blank'))
您是否尝试过不使用所有windows大小属性来保持简单。我使用这个简单的方法,它总是有效的。注意:仅当报表在浏览器中打开时,这在Visual Studio或报表生成器中不起作用。另外,作为旁注,如果您通过“转到报告”方法打开报告,您可以使用缩放控件旁边的“后退”按钮将您带回父报告,这将保留内容位。我承认,错误/习惯使用浏览器的后退按钮太容易了。好的,我将再次简化(我刚刚测试了“后退”按钮,但同意您的看法,使用浏览器的“后退”按钮很容易)。我知道测试的局限性,但这是一个很好的观点。使用此功能时是否更改了任何浏览器设置?不,没有更改任何浏览器设置。我经常从数据库获取URL,因此我只检查URL是否为空,但除此之外,我没有做任何特殊的操作。这是几天前我在报告中使用的jyperlink表达式。
=“javascript:void(window.open('”&IIF(LEN(TRIM(Fields!URL.Value))>0,Fields!URL.Value,”&“,”u blank'))”
正如您所见,它实际上什么都不做,并且会返回类似于javascript:void(window.open(')的内容https://stackoverflow.com“,”空白“)
谢谢@AlanSchofield为javascript:void工作(打开窗户https://stackoverflow.com“,”空白“)
。如果你把它放在答案中,我会把它标记为正确。我现在将用参数测试建筑