水晶报表的子报表中未提取数据

本文关键字:报表 提取 数据 水晶 | 更新日期: 2023-09-27 18:25:07

我在子报表中获取数据时遇到了一些问题。在水晶报告中,数据以正确的方式获取,但当我点击子报告时,它显示"没有有效的报告源可用"

protected void btnSearch_Click(object sender, EventArgs e)
        {
            ReportDocument rptDoc = new ReportDocument();
            ComplaintTrackingSystem.Reports.Datas dss = new Reports.Datas();
            DataTable dt = new DataTable();
            // Just set the name of data table
            DataSet ds;
            Hashtable ObjParameters = new Hashtable();
            BusinessLogicLayer ObjBusiness = new BusinessLogicLayer();
            ObjParameters.Add("@From", dateFrom.SelectedDate.ToShortDateString());
            ObjParameters.Add("@To", dateTo.SelectedDate.ToShortDateString());
            ds = ObjBusiness.SPDataSet(ObjParameters, "ReportForAverageCompt");
            dt.TableName = "Crystal Report Example";
            dt = ds.Tables[0]; //This function is located below this function
            dss.Tables[0].Merge(dt);
            // Your .rpt file path will be below
            rptDoc.Load(HttpContext.Current.Server.MapPath("../Reports/AverageReport.rpt"));
            //set dataset to the report viewer.
            rptDoc.SetDataSource(dss);
            CrystalReportViewer1.ReportSource = rptDoc;
            Session["Report"] = rptDoc;
            ComplaintTrackingSystem.Reports.Datas dssNew = new Reports.Datas();
            ds.Clear();
            ds = ObjBusiness.SPDataSet(ObjParameters, "ReportForResolvedCompt");
            dt.TableName = "Crystal Report";
            dt = ds.Tables[0]; //This function is located below this function
            dssNew.Tables[0].Merge(dt);
            //set dataset to the report viewer.
            rptDoc.Subreports["AdminReport.rpt"].SetDataSource(dssNew);
            rptDoc.Refresh();
            CrystalReportViewer1.ReportSource = rptDoc;
        }

水晶报表的子报表中未提取数据

这是在查看器中发生的,对吧?如果是这样,则错误可能是查看器在会话中找不到报告的结果。查看线程"没有有效的报告源可用。在asp.net sap crystal report中"。