public MyReportForm(string reportInfoName, Dictionary <string, IEnumerable> data) : this() { m_reportInfoName = reportInfoName; m_data = data; ReportInfo reportInfo = ADInfoBll.Instance.GetReportInfo(reportInfoName); ReportDocument reportDocument = ReflectionHelper.CreateInstanceFromName(reportInfo.ReportDocument) as ReportDocument; this.crystalReportViewer1.CrystalHelper.ReportSource = reportDocument; this.crystalReportViewer1.TemplateDataSet = ReflectionHelper.CreateInstanceFromName(reportInfo.DatasetName) as System.Data.DataSet; FillDataSet(data); if (reportInfo.AfterProcessId.HasValue) { ADUtils.ExecuteProcess(ADInfoBll.Instance.GetProcessInfo(reportInfo.AfterProcessId.Value), new object[] { this.crystalReportViewer1.TemplateDataSet, m_data }); } }