我有两个报告,在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
。
我做了一些谷歌搜索,但没有什么能给我一个正确的想法。
我们将不胜感激。
谢谢, 圣
答案 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