2015-09-09 20 views
0

enter image description here如何在水晶報表SetDataSouce多個程序

現在我想從C#代碼在ASP頁設置報表數據源。 使用具有表格的DataSet作爲報告中添加的兩個過程。

的代碼如下

   strPath = HttpContext.Current.Server.MapPath("~/Reports/") + RptName + ".rpt"; 
       rptDoc.Load(strPath); 
       DataSet DS = new DataSet(); 
       DS = objCommon.FillDataSetMTG(SqlConn, "USP_Report_ExecProcs", Convert.ToInt32(ViewState["Id"]), "JobEntryId"); 
       rptDoc.SetDataSource(DS); 

但報告未啓用獲取數據。 有什麼建議嗎?

+0

我想不使用子報表...如果可能的話 –

+0

不應該使用表名稱con在DataSet中匹配數據庫字段名稱?另一種方法可以像這樣設置兩個表:'rptDoc.Database.Tables [0] .SetDataSource(dataTableJobCardDet);''rptDoc.Database.Tables [1] .SetDataSource(dataTableJobCard);' –

回答

1

您可以爲報告中的每個表設置不同的數據源,試試這個,你必須調用這兩個「USP_Report_JobCardDet」和「USP_Report_JobCard」存儲過程

  strPath = HttpContext.Current.Server.MapPath("~/Reports/") + RptName + ".rpt"; 
      rptDoc.Load(strPath); 

      DataSet DS1 = new DataSet(); 
      DS1 = objCommon.FillDataSetMTG(SqlConn, "USP_Report_JobCardDet", Convert.ToInt32(ViewState["Id"]), "JobEntryId"); 
      rptDoc.Tables["USP_Report_JobCardDet"].SetDataSource(DS1); 

      DataSet DS2 = new DataSet(); 
      DS2 = objCommon.FillDataSetMTG(SqlConn, "USP_Report_JobCard", Convert.ToInt32(ViewState["Id"]), "JobEntryId"); 
      rptDoc.Tables["USP_Report_JobCard"].SetDataSource(DS2); 
+0

thanks bro! ! –

1

添加

rptDoc.Refresh();

如果數據正常取得