当前位置: 资源下载\BI 原创\以新窗口展现跳转报表的实现方法

以新窗口展现跳转报表的实现方法
  我们做报表跳转的时候,父报表和子报表只能在一个窗口显示,跳到子报表再回到父报表只能通过后退的方式,不方便查看和使用。现在找到了一个可以以新窗口来展现子报表的方法,介绍给大家。
假设有两张报表(父报表report11,子报表report22)
涉及到的参数说明如下:
  Server:TargetServerURL
  Folder:TargetReportFolder
  ReportName:子报表名称
  Para1:子报表参数名称
  parameter:参数值(父报表传过去的,需要调用第二个Function)   只要最后拼出的url符合要求,可以传递多个报表参数,每个参数可以为单值或多值。

  Step1:
  Report11中,工具栏 报表-------报表属性--------代码,自定义代码里添加如下代码,然后确定:
  Public Shared Function GetUrl(ByVal Server As String, ByVal Folder As String, ByVal ReportName As String, ByVal Para1 As String, ByVal parameter As String) as String
Dim URL As String
Dim s As String
Dim a As String

Dim urlhead As String
Dim urlend As String

urlhead = "javascript:void window.open('" urlend="','_blank','resizeable=1,toolbar=0,status=0,menu=0,top=20,left=20,width=740,height=730');"
URL =urlhead + Server + "?" + "%2f" + Folder + "%2f" + ReportName + "&" + "rs:Command=Render" + "&" + para1 +"=" +parameter + urlend

Return URL

End Function
Public function GetParaValue(ByVal para1 as String) as String

Dim s as string
s=“&”+para1+"="
return s

End function
Step2:
在要跳转的单元格,选择“文本框属性”---------操作---------启用为超链接 选择“转到URL” ,公式里填写如下内容: =Code.GetUrl("http://localhost/ReportServer","SSRS1","Report22","ProductCategory",Join(Parameters!Category.Value,Code.GetParaValue("ProductCategory"))) 确定。
Step3: 发布父、子报表到服务器,查看父报表,点击跳转的单元格即可实现单值或多值传递,并以新的窗口查看子报表详细信息。效果如下:


作者介绍: 朱玲燕,北京迈思奇BI开发工程师,计算机及应用专业学士。
主攻ETL、OLAP建模、多维分析、报表开发、数据挖掘、.net开发等技术领域,具有丰富的BI项目开发和实施经验。

 

北京迈思奇科技有限公司 2004-2008 地址:北京市海淀区中关村紫金数码园4号楼201,邮编 100190 电话:86-010-62662626 传真:86-010-62662776 京ICP备05066245号