2011-01-31 22 views
1

サブレポートをreportviewerを使用してアプリケーションに表示するのに苦労しています。これは、ローカルでデバッグするときに完全に機能します。しかし、それをサーバーにアップロードすると、サブレポートは空白になります。RDLCがサーバーに移動されたときにサブレポートが表示されない

SQL Server Profilerからストアドプロシージャが起動しないため、SubreportProcessingイベントが発生しないと思います。ここで私が使用しているコードです。

private void RunReport(string strFormat, int PlanID) 
    { 
     const string reportrdlc = "Reports\\Report_All_Sections.rdlc"; 
     LocalReport report = new LocalReport {ReportPath = Server.MapPath(reportrdlc)}; 
     report.SetBasePermissionsForSandboxAppDomain(new PermissionSet(PermissionState.Unrestricted)); 
     report.DataSources.Clear(); 
     report.SubreportProcessing += SetSubDataSource; 

     report.DataSources.Add(new ReportDataSource("DataSet_usp_GetSD", _wpt.Get_SD(PlanID).Copy())); 

     report.Refresh(); 

     string mimeType; 
     string encoding; 
     string fileNameExtension; 
     string[] streams; 
     Warning[] warnings; 

     byte[] pdfContent = report.Render(strFormat, null, out mimeType, out encoding, 
        out fileNameExtension, out streams, out warnings); 

     System.IO.MemoryStream stream = new System.IO.MemoryStream(pdfContent); 
     Response.ContentType = strFormat == "EXCEL" ? "application/vnd.ms-excel" : "application/pdf"; 

     Response.BinaryWrite(stream.ToArray()); 
     Response.Flush(); 
     Response.Close(); 
     stream.Close(); 

    } 
    public void SetSubDataSource(object sender, SubreportProcessingEventArgs e) 
    { 
     int PlanID = 1; 
     if (Request.QueryString["PlanID"] != null) 
     { 
      try 
      { 
       PlanID = Convert.ToInt32(Request.QueryString["PlanID"]); 
      } 
      catch (Exception Ex) 
      { 
       PlanID = 1; 
      } 
     } 
     switch (e.ReportPath) 
     { 
      case "Report_All_Mentor": 
       e.DataSources.Add(new ReportDataSource("DataSet_usp_GetMC", _wpt.Get_MC(PlanID).Copy())); 
       break; 
      case "Report_All_Intern": 
       e.DataSources.Add(new ReportDataSource("DataSet_usp_GetEA", _wpt.Get_EA(PlanID).Copy())); 
       break; 
     } 


    } 
+0

まだ解決策はありますか? – Cyberdrew

+0

いいえ、2005年のRDLC形式に戻って修正する必要がありました。あなたが解決策を知っているなら私に知らせてください。 – Jeff

答えて

1

私は同じ問題を抱えているようです。問題は、展開されたreportPathにレポートの完全パスが含まれているときに、ローカルでデバッグしているときにレポート名のみが渡されるということです。

SubreportProcessingイベントが実際に発生している可能性はありますが、switchステートメントでは、caseがreportPathパラメータに含まれる完全パスと一致しないことがあります。

解決方法はわかりませんが、根本的な原因になると思います。

関連する問題