public ActionResult ReportLaunchPrint(ReportsLaunchModel model, int?page, int?Pagesize) { Company currentCom = ((EInvoiceContext)FXContext.Current).CurrentCompany; int pageSize = Pagesize.HasValue ? Convert.ToInt32(Pagesize) : 10; int pageIndex = page.HasValue ? page.Value - 1 : 0; int totalRecords = 0; DateTime?publishdate = null; if (!string.IsNullOrWhiteSpace(model.PublishDate)) { publishdate = DateTime.ParseExact(model.PublishDate, "dd/MM/yyyy", null); } decimal no = Convert.ToDecimal(model.InvNo); // transform IReportService repSrv = currentCom.Config.Keys.Contains("IReportService") ? IoC.Resolve(Type.GetType(currentCom.Config["IReportService"])) as IReportService : new ReportService(); string xmlData = repSrv.ReportLaunch(currentCom.id, model.Pattern, model.Serial, no, model.CreateBy, model.PublishBy, publishdate, null, pageIndex, pageSize, out totalRecords); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xmlData); StringWriter sw = new StringWriter(); XslCompiledTransform xslCT = new XslCompiledTransform(); xslCT.Load(System.Web.HttpContext.Current.Server.MapPath("~/Views/ReportsInv/TKTao_PH.xslt")); xslCT.Transform(xmlDoc, null, sw); model.Html = sw.ToString(); model.pageSize = pageSize; model.pageIndex = pageIndex; model.totalRecords = totalRecords; return(View(model)); }
public ActionResult ReportLaunch(ReportsLaunchModel model) { try { Company currentCom = ((EInvoiceContext)FXContext.Current).CurrentCompany; IPublishInvoiceService PubInvSrv = IoC.Resolve <IPublishInvoiceService>(); IList <string> lstPattern = PubInvSrv.LstByPattern(currentCom.id, 2); if (lstPattern.Count == 0) { Messages.AddErrorFlashMessage("Thông báo phát hành chưa được chấp nhận hoặc chưa có hóa đơn."); return(Redirect("/")); } if (lstPattern.Count > 0) { if (string.IsNullOrEmpty(model.Pattern)) { model.Pattern = lstPattern[0]; IInvoiceService IInvSrv = InvServiceFactory.GetService(model.Pattern, currentCom.id); } } List <string> lstSerial = (from p in PubInvSrv.Query where (p.ComId == currentCom.id) && (p.InvPattern == model.Pattern) && (p.Status > 1) select p.InvSerial).Distinct().ToList <string>(); model.lstPattern = new SelectList(lstPattern); model.lstSerial = new SelectList(lstSerial); return(View(model)); } catch (Exception ex) { Messages.AddErrorFlashMessage(ex.Message); return(RedirectToAction("Index", "Home")); } }
public ActionResult PrintLaunch(ReportsLaunchModel model) { Company currentCom = ((EInvoiceContext)FXContext.Current).CurrentCompany; DateTime?publishdate = null; if (!string.IsNullOrWhiteSpace(model.PublishDate)) { publishdate = DateTime.ParseExact(model.PublishDate, "dd/MM/yyyy", null); } decimal no = Convert.ToDecimal(model.InvNo); // transform IReportService repSrv = currentCom.Config.Keys.Contains("IReportService") ? IoC.Resolve(Type.GetType(currentCom.Config["IReportService"])) as IReportService : new ReportService(); int totalRecords = 0; string xmlData = repSrv.ReportLaunch(currentCom.id, model.Pattern, model.Serial, no, model.CreateBy, model.PublishBy, publishdate, "1", 0, 0, out totalRecords); if (xmlData == "Error") { string htmlError = "<p>Dung lượng quá 200,000 bản ghi!</p>"; return(Json(new { htmlError })); } XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xmlData); StringWriter sw = new StringWriter(); XslCompiledTransform xslCT = new XslCompiledTransform(); xslCT.Load(System.Web.HttpContext.Current.Server.MapPath("~/Views/ReportsInv/TKTao_PH.xslt")); xslCT.Transform(xmlDoc, null, sw); string html = sw.ToString(); return(Json(new { html })); }
public void DownloadReportLauch(ReportsLaunchModel model, string type) { if (type != "pdf" && type != "xls" && type != "xlsx") { Response.Clear(); Response.Write(String.Format("<script type='text/javascript'>alert('Có lỗi trong quá trình tải dữ liệu! <br /> Lỗi: {0}');</script>", type)); Response.Redirect("/Home/PotentiallyError"); Response.End(); Response.Flush(); } try { Company currentCom = ((EInvoiceContext)FXContext.Current).CurrentCompany; DateTime?publishdate = null; if (!string.IsNullOrWhiteSpace(model.PublishDate)) { publishdate = DateTime.ParseExact(model.PublishDate, "dd/MM/yyyy", null); } decimal no = Convert.ToDecimal(model.InvNo); // transform IReportService repSrv = currentCom.Config.Keys.Contains("IReportService") ? IoC.Resolve(Type.GetType(currentCom.Config["IReportService"])) as IReportService : new ReportService(); int totalRecords = 0; string xmlData = repSrv.ReportLaunch(currentCom.id, model.Pattern, model.Serial, no, model.CreateBy, model.PublishBy, publishdate, "1", 0, 0, out totalRecords); if (xmlData == "Error") { Response.Write("Báo cáo quá 200,000 bản ghi!"); Response.Flush(); } else if (type == "pdf") // in pdf { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xmlData); StringWriter sw = new StringWriter(); XslCompiledTransform xslCT = new XslCompiledTransform(); xslCT.Load(System.Web.HttpContext.Current.Server.MapPath("~/Views/ReportsInv/TKTao_PH.xslt")); // add argument XsltArgumentList xslArg = new XsltArgumentList(); xslArg.AddParam("Type", "", type); xslCT.Transform(xmlDoc, xslArg, sw); string html = sw.ToString(); Response.Clear(); Response.AddHeader("Content-Disposition", "attachment; filename=ReportLaunch.pdf"); Response.ContentType = "application/pdf"; StringReader sr = new StringReader(sw.ToString()); Document pdfDoc = new Document(); HTMLWorker htmlparser = new HTMLWorker(pdfDoc); PdfWriter.GetInstance(pdfDoc, Response.OutputStream); pdfDoc.Open(); htmlparser.Parse(sr); pdfDoc.Close(); Response.Write(sr.ReadToEnd()); Response.Flush(); } else // in excel { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xmlData); StringWriter sw = new StringWriter(); XslCompiledTransform xslCT = new XslCompiledTransform(); xslCT.Load(System.Web.HttpContext.Current.Server.MapPath("~/Views/ReportsInv/TKTao_PH.xslt")); // add argument XsltArgumentList xslArg = new XsltArgumentList(); xslArg.AddParam("Type", "", type); xslCT.Transform(xmlDoc, xslArg, sw); string html = sw.ToString(); Response.Clear(); Response.AddHeader("Content-Disposition", "attachment; filename=ReportLaunch.xls"); Response.ContentType = "application/vnd.ms-excel"; StringReader sr = new StringReader(sw.ToString()); Response.Write("<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">"); string style = @"<style>.text { mso-number-format:\@;} .datetime {mso-number-format:'mm\/dd\/yyyy'}</style>"; Response.ContentType = "application/text"; Response.Write(style); Response.Write(sr.ReadToEnd()); Response.Flush(); } } catch (Exception ex) { Response.Clear(); Response.Write(String.Format("<script type='text/javascript'>alert('Có lỗi trong quá trình tải dữ liệu! <br /> Lỗi: {0}');</script>", ex.Message)); Response.Redirect("/ExportExcelAndPdf/ReportLaunchPrint"); Response.End(); Response.Flush(); } }