2017-02-03 63 views
0

我已经构建了一个SSRS报告,它以计数数据和成本数据的形式总结了我的数据。我显示此数据的文本框中有一个操作设置,可使用摘要报告中传递的参数打开更详细的报告。当在SSRS服务器上查看时,这些报告按照需要运行。为什么我出现此错误{“由于对象的当前状态,操作无效”#:C#

现在我有一个Web应用程序,它使用C#来管理这些报告的数据输入,并且我使用一个aspx ReportViewer在应用程序中显示这些报告。问题是如果我从我的C#web应用程序打开总结报告,然后点击链接打开屏幕更改的详细报告,它看起来会打开详细报告,但它只是坐在那里,并没有渲染报告。

当我在我的LocalHost上从Visual Studios运行应用程序时,当我尝试打开摘要报告时出现此错误消息; {“操作是无效的,由于对象的当前状态。”}

这里是我使用的C#代码:

protected void Page_Load(object sender, EventArgs e) 
{ 
    //Get the report server url from web.config 
    String reportServerUrl = ConfigurationManager.AppSettings.Get("ReportServerUrl"); 
    ReportViewer1.ServerReport.ReportServerUrl = new System.Uri(reportServerUrl); 

    String report = Request.QueryString["r"]; 
    if (report == "TransportTotals") 
    { 
     ReportViewer1.ServerReport.ReportPath = "/ExTraReports/TransportTotals"; 
     this.Title = "Transport Totals Report"; 
    } 

任何人都可以提供哪些与错去的解释报告?

+0

哪一行导致错误? –

+0

这里是一些它:在System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,Object o,Object t,EventArgs e) at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender,EventArgs e) at System .Web.UI.Control.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint) – Perry

+0

请编辑您的问题 –

回答

0

我能解决这个问题。校正后的代码如下:

String report = Request.QueryString["r"]; 
    if (report == "TransportTotals" && ReportViewer1.ServerReport.ReportPath != "/ExTraReports/NEWClosedTransportsByStateAndAgencyTypeAndNameDetail") 
    { 
     ReportViewer1.ServerReport.ReportPath = "/ExTraReports/TransportTotals"; 
     this.Title = "Transport Totals Report"; 
    } 

我不得不检查被每次页面加载,看看是否被调用详细报告,其中有一个不同的路径返回的报告路径。如果是这样,那么if块失败并打开链接的报告。

相关问题