Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何使用reportviewer在SSRS 2008 R2的主报告下方显示钻取报告_Vb.net_Ssrs 2008_Reportviewer_Reporting Services - Fatal编程技术网

Vb.net 如何使用reportviewer在SSRS 2008 R2的主报告下方显示钻取报告

Vb.net 如何使用reportviewer在SSRS 2008 R2的主报告下方显示钻取报告,vb.net,ssrs-2008,reportviewer,reporting-services,Vb.net,Ssrs 2008,Reportviewer,Reporting Services,我将ReportViewer与ServerReports、SSRS2008R2和VB.NET一起使用。我正在使用“转到报告”操作将报告链接在一起。单击SSRS报告上的链接时,默认功能是将该报告替换为钻取报告。相反,我希望将主报告保留在那里,并将钻取报告作为单独的ReportViewer显示在其下方 我找到了一种方法来实现这一点,但它似乎不是很有效。以下是我迄今为止(从中找到)的代码: 这确实有效,但看起来好像它正在尝试加载报告两次。我找不到关于DrillthroughEventHandler的很

我将ReportViewer与ServerReports、SSRS2008R2和VB.NET一起使用。我正在使用“转到报告”操作将报告链接在一起。单击SSRS报告上的链接时,默认功能是将该报告替换为钻取报告。相反,我希望将主报告保留在那里,并将钻取报告作为单独的ReportViewer显示在其下方

我找到了一种方法来实现这一点,但它似乎不是很有效。以下是我迄今为止(从中找到)的代码:

这确实有效,但看起来好像它正在尝试加载报告两次。我找不到关于DrillthroughEventHandler的很多文档,但是当已经从服务器获取drillthrough报告并准备好用所有数据呈现时,事件似乎会触发

因此,调用上面的代码基本上会按顺序加载报告两次(在主报告中单击链接时加载一次,在设置钻取报告参数时加载一次)。查看firebug,我看到每个post事件都需要大约8秒的时间(钻取报告有点慢)。当我取出上面的代码,钻取报告替换主报告时,只发送了1篇文章

是否有方法拦截对钻取报告的第一次调用,并使用所需参数直接从ReportViewer3控件调用它?我是否遗漏了一些东西,这看起来是一个相当普遍的要求

Public Sub SummaryDrillthroughHandler(ByVal sender As Object, _
    ByVal e As DrillthroughEventArgs)

    e.Cancel = True 'Stop action from replacing main report as expected

    Dim rpic As ReportParameterInfoCollection = e.Report.GetParameters()
    Dim params As New List(Of ReportParameter)

    For Each param As ReportParameterInfo In rpic
        params.Add(New ReportParameter(param.Name, param.Values(0)))
    Next

    ReportViewer3.ServerReport.ReportServerUrl = New Uri("myReportServer")
    ReportViewer3.ServerReport.ReportPath = e.ReportPath
    ReportViewer3.ServerReport.SetParameters(params)

End Sub