protected virtual void RenderReport() { DataCommandService dataCommandDB = DataCommandService.GetInstance(); PageDB pageDB = new PageDB(); //get report data Hashtable dataItems = new Hashtable(); foreach (CodeTorch.Core.ReportDataSource dataSource in Me.ReportDataSources) { DataTable data = GetData(dataCommandDB, pageDB, dataSource); dataItems.Add(dataSource.Name, data); } //render report string mime = null; string ext = null; byte[] report = ReportFunctions.RenderReport(Me, dataItems, out mime, out ext); Page.Response.Expires = 0; Page.Response.Buffer = true; Page.Response.Clear(); Page.Response.ClearContent(); Page.Response.ClearHeaders(); Page.Response.AddHeader("Content-Disposition", String.Format("attachment;filename={0}.{1}", (String.IsNullOrEmpty(Me.ExportFileName) ? "export" : Me.ExportFileName), ext)); Page.Response.ContentType = mime; Page.Response.BinaryWrite(report); Page.Response.End(); }
private void LoadReportDefinition(LocalReport localReport) { string ConfigResourceDLL = ConfigurationManager.AppSettings["APPBUILDER_CONFIG_DLL_NAMESPACE"]; string configNamespace = ConfigurationManager.AppSettings["APPBUILDER_CONFIG_DLL_NAMESPACE"]; Assembly assembly = Assembly.Load(ConfigResourceDLL); string reportPath = ReportFunctions.GetReportPath(Me.ReportName, Me.EnableLocalization, configNamespace); Stream stream = assembly.GetManifestResourceStream(reportPath); if (stream != null) { localReport.LoadReportDefinition(stream); localReport.EnableHyperlinks = Me.EnableHyperlinks; } else { throw new ApplicationException(String.Format("Report {0} could not be found.", reportPath)); } }