如何在SSRS中跳转到URL?

时间:2009-06-17 21:12:53

标签: reporting-services

我有两个报告,在reportserver中的同一个forder。我想链接两个报告来回传递参数。

我尝试使用跳转到报告传递参数,它可以工作但在同一窗口中打开报告。 我正在寻找在新窗口中打开报告,因此尝试使用此表达式使用“跳转到URL”。

  

=“JavaScript的:无效(window.open(”http://servername/reportserver?%2fStaffing%2fTest%2fStaffing   预测   总结和放大器; RS:命令=呈现和放大器; PI_REGION_LIST = “!+参数PI_REGION_LIST.Value +” &放大器; PI_CENTER_CODE = “!+参数PI_CENTER_CODE.Value +” &放大器; PI_PROBABILITY = “!+参数PI_PROBABILITY.Value +” &放大器; PI_X =“+参数! PI_X.Value + “'))”

任何人都可以帮助我。我将如何动态地执行此操作,以便在生产移动时不必更改服务器名称?前3个参数是多值参数,用这种方式很好吗? 我的报告可以从报告管理器本身访问。 我应该为reportserver提供什么?

我对整个情节中的?&/感到困惑。什么是%2f。 我做了一些谷歌搜索,但没有什么能给我一个正确的想法。

我们将不胜感激。

谢谢, 圣

4 个答案:

答案 0 :(得分:1)

我刚刚使用'跳转到网址'并转储了javascript的东西。我使用Expression构建器根据我的服务器和我调用的报告构建以下输出,该报告需要参数prmCUID和prmEnabled:

="http://sk24-cbnks002/reportserver?/Autosweep/Operations/Sweeps+By+Credit+Union&prmCUID=" + Fields!CU_ID.Value.ToString + "&prmEnabled=true&rs%3aParameterLanguage=en-CA"

我希望这会有所帮助。我一开始很难过。

-Dave

答案 1 :(得分:1)

要使用Jump to URL(不使用javascript),您需要指定以下内容:

=Globals!ReportServerUrl & "/Pages/ReportViewer.aspx?"
& "/Staffing/Test/Staffing Forecast Summary"
& "&rs:Command=Render"
& "&PI_REGION_LIST=" & JOIN(Parameters!PI_REGION_LIST.Value, ",")
& "&PI_CENTER_CODE=" & JOIN(Parameters!PI_CENTER_CODE.Value, ",")
& "&PI_PROBABILITY=" & JOIN(Parameters!PI_PROBABILITY.Value, ",")
& "&PI_X=" & Parameters!PI_X.Value

我把东西放在多行上并将其分开以便于阅读。

第一行指定运行原始报告的报告服务器URL,因此无需对生产服务器URL进行硬编码。

第二行指定要在报表服务器上运行的目录和报表

第三行告诉报表服务器如何处理报表:您可以使用以下

导出为CSV
& "&rs:Format=csv&rc:NoHeader=True&rc:Encoding=Ascii&rs:Command=Render"

最后一行指定要使用的参数。 (由于前三个参数是多值的,我们将它们连接在一起,但用逗号分隔它们。)

在更改为使用javascript功能时(从报表设计器中的表达式编辑器的VBScript),我们更改& for +执行concanenation。并解释“?”,“&”,“/”,“=”和“”这些因URL编码而分别成为%3f,%26,%2f,%3d和%20(你可以找到)更多here)。

不幸的是,我的Javascript不足以确定从VBScript到Javascript的变化,但我的猜测是它会是这样的:

Globals!ReportServerUrl & "/Pages/ReportViewer.aspx?/Staffing/Test/Staffing Forecast Summary&rs:Command=Render&PI_REGION_LIST=" & JOIN(Parameters!PI_REGION_LIST.Value,",") & "&PI_CENTER_CODE=" & JOIN(Parameters!PI_CENTER_CODE.Value,",") & "&PI_PROBABILITY=" & JOIN(Parameters!PI_PROBABILITY.Value,",") & "&PI_X=" & Parameters!PI_X.Value

到此:

="javascript:void(window.open('" & Globals!ReportServerUrl & "%2fPages%2fReportViewer.aspx%3f%2fStaffing%2fTest%2fStaffing%20Forecast%20Summary%26rs:Command%3dRender%26PI_REGION_LIST%3d" & JOIN(Parameters!PI_REGION_LIST.Value,",") & "%26PI_CENTER_CODE%3d" & JOIN(Parameters!PI_CENTER_CODE.Value,",") & "%26PI_PROBABILITY%3d" & JOIN(Parameters!PI_PROBABILITY.Value,",") & "%26PI_X%3d"+Parameters!PI_X.Value & "'))"

我无法确定Javascript中此最终结果的有效性,但在表达式编辑器中似乎没问题。

答案 2 :(得分:0)

SSRS MS SQL Server 2008 R2

在TEXTBOX中 转到文本框属性(F4或右键单击 - >属性) 去行动 设置转到URL 在表达式中设置以下代码(右边的小Fx):

="http://MYSERVER/ReportServer?/MY REPORT FOLDER/MY REPORT NAME&rc:Parameters=True&rs:Command=Render&TODAY="& CStr(Fields!DT_0.Value)& "&ENG=" &Str(Fields!Employee_id.Value) & "&DT_TO=" & CStr(Fields!DT_6.Value)

上面的代码在这里处理我的环境。

请注意3个参数:

参数1称为TODAY 参数2称为ENG 参数3称为DT_TO

我也在努力传递参数。

他们的价值来自不同的数据集。

希望这有助于节省很多时间。 因为对我来说很难让它发挥作用

Marcelo Miorelli

答案 3 :(得分:0)

对以上答案的此修订对我有用-请注意多值参数中的分隔符值。我正在使用RS2008,发现所有参数需要在表达式生成器的相同行上

=Globals!ReportServerUrl & "/Pages/ReportViewer.aspx?"

& "/Staffing/Test/Staffing Forecast Summary"

& "&rs:Command=Render"

& "&PI_REGION_LIST=" & JOIN(Parameters!PI_REGION_LIST.Value, "&PI_REGION_LIST=")

& "&PI_CENTER_CODE=" & JOIN(Parameters!PI_CENTER_CODE.Value, "&PI_CENTER_CODE=")

& "&PI_PROBABILITY=" & JOIN(Parameters!PI_PROBABILITY.Value, "&PI_PROBABILITY=")
& "&PI_X=" & Parameters!PI_X.Value