private void Mywork_OnDoWork(object sender, DoWorkEventArgs e) { using (ReportClass rptH = new ReportClass()) { CrystalDecisions.Shared.PdfRtfWordFormatOptions pdfOpts = CrystalDecisions.Shared.ExportOptions.CreatePdfRtfWordFormatOptions(); CrystalDecisions.Shared.ExcelDataOnlyFormatOptions excelOptsDataOnly = CrystalDecisions.Shared.ExportOptions.CreateDataOnlyExcelFormatOptions(); CrystalDecisions.Shared.ExcelFormatOptions excelOpts = CrystalDecisions.Shared.ExportOptions.CreateExcelFormatOptions(); CrystalDecisions.Shared.MicrosoftMailDestinationOptions mailOpts = CrystalDecisions.Shared.ExportOptions.CreateMicrosoftMailDestinationOptions(); CrystalDecisions.Shared.DiskFileDestinationOptions diskOpts = CrystalDecisions.Shared.ExportOptions.CreateDiskFileDestinationOptions(); CrystalDecisions.Shared.ExportOptions exportOpts = new CrystalDecisions.Shared.ExportOptions(); ReportDocument rpt = new ReportDocument(); rpt.Load(file); pdfOpts.UsePageRange = false; exportOpts.ExportFormatOptions = pdfOpts; excelOptsDataOnly.UseWorksheetFunctionsForSummaries = true; excelOptsDataOnly.MaintainColumnAlignment = true; string MyRptName = rpt.FileName.ToString(); //MyRptName = @"D:\ITProject\Tin\Tin2.xls"; MyRptName = filepath + "\\" + filenameNoExtension + ".xls"; //diskOpts.DiskFileName = "World Sales Report.pdf"; diskOpts.DiskFileName = MyRptName; exportOpts.ExportDestinationOptions = diskOpts; //exportOpts.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.MicrosoftMail; exportOpts.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile; //exportOpts.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat; exportOpts.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.ExcelRecord; rpt.Export(exportOpts); for (int i = 0; i <= 100; i = i + 20) { // Report progress to 'UI' thread mywork.ReportProgress(i); // Simulate long task System.Threading.Thread.Sleep(100); } } }
protected void Page_Init(object sender, EventArgs e) { try { var culture = System.Globalization.CultureInfo.CreateSpecificCulture("en-GB"); culture.NumberFormat.CurrencySymbol = string.Empty; System.Threading.Thread.CurrentThread.CurrentCulture = culture; System.Threading.Thread.CurrentThread.CurrentUICulture = culture; base.InitializeCulture(); string lcomp = Server.MapPath("~/Facturacion/Electronica/Reportes/Iva_Compras.xsd"); System.IO.File.Copy(lcomp, @System.IO.Path.GetTempPath() + "Iva_Compras.xsd", true); oRpt = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); bool HayME = false; string reportPath = ""; if (Session["monedasExtranjeras"] != null) { HayME = (bool)Session["monedasExtranjeras"]; } if (!HayME) { reportPath = Server.MapPath("~/Facturacion/Electronica/Reportes/IvaComprasCR.rpt"); } else { reportPath = Server.MapPath("~/Facturacion/Electronica/Reportes/IvaComprasMECR.rpt"); } oRpt.Load(reportPath); Entidades.IvaCompras ivaCompras = new Entidades.IvaCompras(); if (Session["ivaCompras"] != null) { ivaCompras = (Entidades.IvaCompras)Session["ivaCompras"]; DataSet ds = new DataSet(); XmlSerializer objXS = new XmlSerializer(ivaCompras.GetType()); StringWriter objSW = new StringWriter(); objXS.Serialize(objSW, ivaCompras); StringReader objSR = new StringReader(objSW.ToString()); ds.ReadXml(objSR); oRpt.SetDataSource(ds); } else { Response.Redirect("~/Facturacion/Electronica/Reportes/IvaComprasFiltros.aspx", true); } string formatoRptExportar = ""; if (Session["formatoRptExportar"] != null) { formatoRptExportar = (string)Session["formatoRptExportar"]; } if (Session["mostrarFechaYHora"] != null) { if ((bool)Session["mostrarFechaYHora"] == false) { oRpt.DataDefinition.FormulaFields["MostrarFechaYHora"].Text = "'N'"; } } oRpt.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperLetter; oRpt.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Landscape; oRpt.DataDefinition.FormulaFields["RazSoc"].Text = "'" + ((Entidades.Sesion)Session["Sesion"]).Cuit.RazonSocial + "'"; if (formatoRptExportar == "") { CrystalReportViewer1.GroupTreeStyle.ShowLines = false; CrystalReportViewer1.HasToggleGroupTreeButton = false; CrystalReportViewer1.ToolPanelView = CrystalDecisions.Web.ToolPanelViewType.None; CrystalReportViewer1.ReportSource = oRpt; CrystalReportViewer1.HasPrintButton = true; } else { System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append(ivaCompras.Cuit); sb.Append("-"); sb.Append(Convert.ToDateTime(ivaCompras.PeriodoDsd).ToString("yyyyMMdd")); sb.Append("-"); sb.Append(Convert.ToDateTime(ivaCompras.PeriodoHst).ToString("yyyyMMdd")); if (formatoRptExportar == "PDF") { CrystalDecisions.Shared.ExportOptions exportOpts = new CrystalDecisions.Shared.ExportOptions(); CrystalDecisions.Shared.PdfRtfWordFormatOptions pdfOpts = CrystalDecisions.Shared.ExportOptions.CreatePdfRtfWordFormatOptions(); exportOpts.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat; exportOpts.ExportFormatOptions = pdfOpts; oRpt.ExportToHttpResponse(exportOpts, Response, true, sb.ToString()); } if (formatoRptExportar == "Excel") { CrystalDecisions.Shared.ExportOptions exportOpts = new CrystalDecisions.Shared.ExportOptions(); CrystalDecisions.Shared.ExcelFormatOptions pdfOpts = CrystalDecisions.Shared.ExportOptions.CreateExcelFormatOptions(); exportOpts.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat; exportOpts.ExportFormatOptions = pdfOpts; oRpt.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.Excel, Server.MapPath("~/TempExcel/") + sb.ToString() + ".xls"); System.Web.HttpResponse response = System.Web.HttpContext.Current.Response; response.ClearContent(); response.Clear(); response.ContentType = "application/vnd.ms-excel"; response.AddHeader("Content-Disposition", "attachment; filename=" + sb.ToString() + ".xls" + ";"); response.TransmitFile(Server.MapPath("~/TempExcel/" + sb.ToString() + ".xls")); response.Flush(); response.End(); } } } catch (System.Threading.ThreadAbortException) { Trace.Warn("Thread abortado"); } catch (Exception ex) { WebForms.Excepciones.Redireccionar(ex, "~/NotificacionDeExcepcion.aspx"); } }