/// <summary> /// Save the report to the output selected. /// </summary> /// <param name='report'> /// Report. /// </param> /// <param name='FileName'> /// File name. /// </param> private void ExportReport(Report report, string FileName, OutputPresentationType exportType) { OneFileStreamGen sg = null; try { sg = new OneFileStreamGen(FileName, true); report.RunRender(sg, exportType); } catch (Exception ex) { Gtk.MessageDialog m = new Gtk.MessageDialog(null, Gtk.DialogFlags.Modal, Gtk.MessageType.Error, Gtk.ButtonsType.Ok, false, ex.Message); m.Run(); m.Destroy(); } finally { if (sg != null) { sg.CloseMainStream(); } } return; }
/// <summary> /// Export the report to file /// </summary> /// <param name="source">Xml source of report</param> /// <param name="parameters">Example: parameter1=someValue¶meter2=anotherValue</param> public static void Export(string source, string parameters, string fileName, OutputPresentationType exportType) { // Compile the report report = GetReport(source); if (report == null) { throw new ArgumentException("Can not compile report"); } report.RunGetData(GetParmeters(parameters)); OneFileStreamGen sg = null; try { sg = new OneFileStreamGen(fileName, true); report.RunRender(sg, exportType); } catch (Exception ex) { throw ex; } finally { if (sg != null) { sg.CloseMainStream(); } } }
/// <summary> /// Renders the report using the requested presentation type. /// </summary> /// <param name="sg">IStreamGen for generating result stream</param> /// <param name="type">Presentation type: HTML, XML, PDF, MHT, or ASP compatible HTML</param> /// <param name="prefix">For HTML puts prefix allowing unique name generation</param> public void RunRender(IStreamGen sg, OutputPresentationType type, string prefix) { if (sg == null) { throw new ArgumentException("IStreamGen argument cannot be null.", "sg"); } RenderHtml rh = null; PageNumber = 1; // reset page numbers TotalPages = 1; IPresent ip; MemoryStreamGen msg = null; switch (type) { case OutputPresentationType.PDF: ip = new RenderPdf(this, sg); _Report.Run(ip); break; case OutputPresentationType.XML: if (_Report.DataTransform != null && _Report.DataTransform.Length > 0) { msg = new MemoryStreamGen(); ip = new RenderXml(this, msg); _Report.Run(ip); RunRenderXmlTransform(sg, msg); } else { ip = new RenderXml(this, sg); _Report.Run(ip); } break; case OutputPresentationType.MHTML: this.RunRenderMht(sg); break; case OutputPresentationType.ASPHTML: case OutputPresentationType.HTML: default: ip = rh = new RenderHtml(this, sg); rh.Asp = (type == OutputPresentationType.ASPHTML); rh.Prefix = prefix; _Report.Run(ip); // Retain the CSS and JavaScript if (rh != null) { _CSS = rh.CSS; _JavaScript = rh.JavaScript; } break; } sg.CloseMainStream(); _Cache = new RCache(); return; }
// Run the report passing the parameter values and the output public void Run(IDictionary parms, OutputPresentationType type) { r.RunGetData(parms); r.RunRender(_sg, type); return; }
public Stream GetReport(string templateName, List <Param> paramList, OutputPresentationType reportType) { var outputFile = BuildReport(templateName, paramList, reportType); var result = GetMemoryStreamFromFileName(outputFile); DeleteFile(outputFile); return(result); }
// Run the report passing the parameter values and the output public void Run(IDictionary parms, OutputPresentationType type) { r.RunGetData(parms); var pgs = r.BuildPages(); r.RunRender(_sg, type, pgs); return; }
private string GetOutputFileNameExtension(OutputPresentationType outputPresentationType) { switch (outputPresentationType) { case OutputPresentationType.PDF: return("pdf"); case OutputPresentationType.XML: return("xml"); case OutputPresentationType.CSV: return("csv"); case OutputPresentationType.Excel: return("xlsx"); case OutputPresentationType.Excel2003: return("xls"); case OutputPresentationType.RenderPdf_iTextSharp: return("pdf"); case OutputPresentationType.Word: return("docx"); case OutputPresentationType.HTML: return("html"); case OutputPresentationType.PDFOldStyle: return("pdf"); case OutputPresentationType.ASPHTML: return("ASPHTML"); case OutputPresentationType.Internal: return("int"); case OutputPresentationType.MHTML: return("MHTML"); case OutputPresentationType.RTF: return("rtf"); case OutputPresentationType.TIF: return("tif"); case OutputPresentationType.TIFBW: return("tif"); } return(string.Empty); }
private string BuildReport(string templateName, List <Param> paramList, OutputPresentationType output) { var outputFileName = GetOutputFileName(templateName, output); GeneralUtils.ChangeCurrentCultrue("es-ES"); var report = GetReport(templateName, paramList); var paramsList = GetReportParams(paramList, ref report); report.RunGetData(paramsList); var pages = report.BuildPages(); var sg = new OneFileStreamGen(outputFileName, true); switch (output) { case OutputPresentationType.Word: report.RunRender(sg, OutputPresentationType.HTML, pages); outputFileName = GetWordDocumentFromHtml(outputFileName); break; case OutputPresentationType.RenderPdf_iTextSharp: case OutputPresentationType.PDF: report.ItextPDF = true; report.RunRenderPdf(sg, pages); break; case OutputPresentationType.PDFOldStyle: report.ItextPDF = false; report.RunRenderPdf(sg, pages); break; default: report.RunRender(sg, output, pages); break; } sg.CloseMainStream(); sg.Dispose(); return(outputFileName); }
/// <summary> /// Export the report to memory stream /// </summary> /// <param name='sourcefile'> /// Filename. /// </param> /// <param name='parameters'> /// Example: parameter1=someValue¶meter2=anotherValue /// </param> public static MemoryStream ExportToMemoryStream(Uri sourcefile, string parameters, OutputPresentationType exportType) { sourceFileUri = sourcefile; workingDirectory = System.IO.Path.GetDirectoryName(sourcefile.LocalPath); string source = System.IO.File.ReadAllText(sourcefile.LocalPath); return(ExportToMemoryStream(source, parameters, exportType)); }
/// <summary> /// Export the report to memory stream /// </summary> /// <param name='filename'> /// Filename. /// </param> public static MemoryStream ExportToMemoryStream(Uri filename, OutputPresentationType exportType) { return(ExportToMemoryStream(filename, "", exportType)); }
/// <summary> /// Export the report to memory stream /// </summary> /// <param name="source">Xml source of report</param> /// <param name="parameters">Example: parameter1=someValue¶meter2=anotherValue</param> public static MemoryStream ExportToMemoryStream(string source, string parameters, OutputPresentationType exportType) { // Compile the report report = GetReport(source); if (report == null) { throw new ArgumentException("Can not compile report"); } report.RunGetData(GetParmeters(parameters)); MemoryStreamGen ms = null; try { ms = new MemoryStreamGen(); report.RunRender(ms, exportType); } catch (Exception ex) { ms.CloseMainStream(); throw ex; } return(ms.GetStream() as MemoryStream); }
/// <summary> /// Export the report to file /// </summary> /// <param name="source">Xml source of report</param> /// <param name="parameters">Example: parameter1=someValue¶meter2=anotherValue</param> /// <param name="connectionString">Relace all Connection string in report.</param> /// <param name="overwriteSubreportConnection">If true connection string in subreport also will be overwrite</param> public static void Export(string source, string parameters, string connectionStr, string fileName, OutputPresentationType exportType, bool overwriteSubreportCon = false) { connectionString = connectionStr; overwriteSubreportConnection = overwriteSubreportCon; Export(source, parameters, fileName, exportType); }
public void SaveAs(string filename, OutputPresentationType type) { rdlEditPreview1.SaveAs(filename, type); }
/// <summary> /// Export the report to file /// </summary> /// <param name='filename'> /// Filename. /// </param> public static void Export(Uri filename, string fileName, OutputPresentationType exportType) { Export(filename, "", fileName, exportType); }
/// <summary> /// Renders the report using the requested presentation type. /// </summary> /// <param name="sg">IStreamGen for generating result stream</param> /// <param name="type">Presentation type: HTML, XML, PDF, MHT, or ASP compatible HTML</param> /// <param name="prefix">For HTML puts prefix allowing unique name generation</param> public void RunRender(IStreamGen sg, OutputPresentationType type, string prefix) { if (sg == null) throw new ArgumentException("IStreamGen argument cannot be null.", "sg"); RenderHtml rh=null; PageNumber = 1; // reset page numbers TotalPages = 1; IPresent ip; MemoryStreamGen msg = null; switch (type) { case OutputPresentationType.PDF: ip = new RenderPdf(this, sg); _Report.Run(ip); break; case OutputPresentationType.PDFOldStyle: ip = new RenderPdf(this, sg); this.ItextPDF = false; _Report.Run(ip); break; case OutputPresentationType.TIF: ip = new RenderTif(this, sg); _Report.Run(ip); break; case OutputPresentationType.TIFBW: RenderTif rtif = new RenderTif(this, sg); rtif.RenderColor = false; ip = rtif; _Report.Run(ip); break; case OutputPresentationType.XML: if (_Report.DataTransform != null && _Report.DataTransform.Length > 0) { msg = new MemoryStreamGen(); ip = new RenderXml(this, msg); _Report.Run(ip); RunRenderXmlTransform(sg, msg); } else { ip = new RenderXml(this, sg); _Report.Run(ip); } break; case OutputPresentationType.MHTML: this.RunRenderMht(sg); break; case OutputPresentationType.CSV: ip = new RenderCsv(this, sg); _Report.Run(ip); break; case OutputPresentationType.RTF: ip = new RenderRtf(this, sg); _Report.Run(ip); break; case OutputPresentationType.Excel: ip = new RenderExcel(this, sg); _Report.Run(ip); break; case OutputPresentationType.ASPHTML: case OutputPresentationType.HTML: default: ip = rh = new RenderHtml(this, sg); rh.Asp = (type == OutputPresentationType.ASPHTML); rh.Prefix = prefix; _Report.Run(ip); // Retain the CSS and JavaScript if (rh != null) { _CSS = rh.CSS; _JavaScript = rh.JavaScript; } break; } sg.CloseMainStream(); _Cache = new RCache(); return; }
public void SaveAs(string filename, OutputPresentationType type) { this.rdlPreview.SaveAs(filename, type); }
/// <summary> /// Renders the report using the requested presentation type. /// </summary> /// <param name="sg">IStreamGen for generating result stream</param> /// <param name="type">Presentation type: HTML, XML, PDF, MHT, or ASP compatible HTML</param> /// <param name="prefix">For HTML puts prefix allowing unique name generation</param> public void RunRender(IStreamGen sg, OutputPresentationType type, string prefix) { if (sg == null) { throw new ArgumentException("IStreamGen argument cannot be null.", "sg"); } RenderHtml rh = null; PageNumber = 1; // reset page numbers TotalPages = 1; //Replaced from forum, User: Aulofee http://www.fyireporting.com/forum/viewtopic.php?t=793 IPresent ip = null; try { MemoryStreamGen msg = null; switch (type) { case OutputPresentationType.PDF: ip = new RenderPdf(this, sg); _Report.Run(ip); break; case OutputPresentationType.TIF: ip = new RenderTif(this, sg); _Report.Run(ip); break; case OutputPresentationType.TIFBW: RenderTif rtif = new RenderTif(this, sg); rtif.RenderColor = false; ip = rtif; _Report.Run(ip); break; case OutputPresentationType.XML: if (_Report.DataTransform != null && _Report.DataTransform.Length > 0) { //TODO: Make uniform, use RenderXML. msg = new MemoryStreamGen(); ip = new RenderXml(this, msg); _Report.Run(ip); RunRenderXmlTransform(sg, msg); } else { ip = new RenderXml(this, sg); _Report.Run(ip); } break; case OutputPresentationType.MHTML: this.RunRenderMht(sg); break; case OutputPresentationType.CSV: ip = new RenderCsv(this, sg); _Report.Run(ip); break; case OutputPresentationType.RTF: ip = new RenderRtf(this, sg); _Report.Run(ip); break; case OutputPresentationType.Excel: ip = new RenderExcel(this, sg); _Report.Run(ip); break; case OutputPresentationType.ASPHTML: case OutputPresentationType.HTML: default: ip = rh = new RenderHtml(this, sg); rh.Asp = (type == OutputPresentationType.ASPHTML); rh.Prefix = prefix; _Report.Run(ip); // Retain the CSS and JavaScript if (rh != null) { _CSS = rh.CSS; _JavaScript = rh.JavaScript; } break; } sg.CloseMainStream(); _Cache = new RCache(); } finally { if (ip != null) { ip.Dispose(); } } return; }
private void menuFileSaveAs_Click(object sender, EventArgs e) { MDIChild mc = this.ActiveMdiChild as MDIChild; if (mc == null) { return; } SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "PDF files (*.pdf)|*.pdf|" + "XML files (*.xml)|*.xml|" + "HTML files (*.html)|*.html|" + "CSV files (*.csv)|*.csv|" + "RTF files (*.rtf)|*.rtf|" + "TIF files (*.tif)|*.tif|" + "Excel files (*.xlsx)|*.xlsx|" + "MHT files (*.mht)|*.mht"; sfd.FilterIndex = 1; Uri file = mc.SourceFile; if (file != null) { int index = file.LocalPath.LastIndexOf('.'); if (index > 1) { sfd.FileName = file.LocalPath.Substring(0, index) + ".pdf"; } else { sfd.FileName = "*.pdf"; } } else { sfd.FileName = "*.pdf"; } if (sfd.ShowDialog(this) != DialogResult.OK) { return; } // save the report in a rendered format string ext = null; int i = sfd.FileName.LastIndexOf('.'); if (i < 1) { ext = ""; } else { ext = sfd.FileName.Substring(i + 1).ToLower(); } OutputPresentationType type = OutputPresentationType.Internal; switch (ext) { case "pdf": type = OutputPresentationType.PDF; break; case "xml": type = OutputPresentationType.XML; break; case "html": type = OutputPresentationType.HTML; break; case "htm": type = OutputPresentationType.HTML; break; case "csv": type = OutputPresentationType.CSV; break; case "rtf": type = OutputPresentationType.RTF; break; case "mht": type = OutputPresentationType.MHTML; break; case "mhtml": type = OutputPresentationType.MHTML; break; case "xlsx": type = OutputPresentationType.Excel; break; case "tif": type = OutputPresentationType.TIF; break; case "tiff": type = OutputPresentationType.TIF; break; default: MessageBox.Show(this, String.Format("{0} is not a valid file type. File extension must be PDF, XML, HTML, CSV, MHT, RTF, TIF, XLSX.", sfd.FileName), "Save As Error", MessageBoxButtons.OK, MessageBoxIcon.Error); break; } if (type == OutputPresentationType.TIF) { DialogResult dr = MessageBox.Show(this, "Do you want to save colors in TIF file?", "Export", MessageBoxButtons.YesNoCancel); if (dr == DialogResult.No) { type = OutputPresentationType.TIFBW; } else if (dr == DialogResult.Cancel) { return; } } if (type != OutputPresentationType.Internal) { try { mc.Viewer.SaveAs(sfd.FileName, type); } catch (Exception ex) { MessageBox.Show(this, ex.Message, "Save As Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } return; }
// Renders the report; RunGetData must be run before this. public void RunRender(IStreamGen sg, OutputPresentationType type) { if (sg == null) { throw new ArgumentException("IStreamGen argument cannot be null.", "sg"); } PageNumber.RuntimePageNumber = 1; // reset page numbers TotalPages.RuntimePageCount = 1; IPresent ip; MemoryStreamGen msg = null; switch (type) { case OutputPresentationType.PDF: ip = new RenderPdf(this, sg); break; case OutputPresentationType.XML: if (this.DataTransform != null && DataTransform.Length > 0) { msg = new MemoryStreamGen(); ip = new RenderXml(this, msg); } else { ip = new RenderXml(this, sg); } break; case OutputPresentationType.HTML: default: ip = new RenderHtml(this, sg); break; } Run(ip); // When msg isn't null we have to do a datatransform on the XML in the data stream if (msg != null) { try { string file; if (this.DataTransform[0] != Path.DirectorySeparatorChar) { file = this.Folder + Path.DirectorySeparatorChar + _DataTransform; } else { file = this.Folder + _DataTransform; } XmlUtil.XslTrans(file, msg.GetText(), sg.GetStream()); } catch (Exception ex) { this.rl.LogError(8, "Error processing DataTransform " + ex.Message + "\r\n" + ex.StackTrace); } finally { msg.Dispose(); } } sg.CloseMainStream(); return; }
private string GetOutputFileName(string templateName, OutputPresentationType outputPresentationType) { var now = System.DateTime.UtcNow; return(Path.Combine(RootFolder, TempFolder) + @"/" + $"{templateName}{GeneralUtils.GetDateTimeMark()}_{now.Millisecond}.{GetOutputFileNameExtension(outputPresentationType)}"); }
/// <summary> /// Export the report to file /// </summary> /// <param name='sourcefile'> /// Filename. /// </param> /// <param name='parameters'> /// Example: parameter1=someValue¶meter2=anotherValue /// </param> public static void Export(Uri sourcefile, string parameters, string fileName, OutputPresentationType exportType) { sourceFileUri = sourcefile; workingDirectory = System.IO.Path.GetDirectoryName(sourcefile.LocalPath); string source = System.IO.File.ReadAllText(sourcefile.LocalPath); Export(source, parameters, fileName, exportType); }
public void SaveAs(string filename, OutputPresentationType type) { rdlDesigner.SaveAs(filename, type); }
/// <summary> /// Renders the report using the requested presentation type. /// </summary> /// <param name="sg">IStreamGen for generating result stream</param> /// <param name="type">Presentation type: HTML, XML, PDF, or ASP compatible HTML</param> public void RunRender(IStreamGen sg, OutputPresentationType type, Pages pgs) { RunRender(sg, type, "", pgs); }
/// <summary> /// Renders the report using the requested presentation type. /// </summary> /// <param name="sg">IStreamGen for generating result stream</param> /// <param name="type">Presentation type: HTML, XML, PDF, or ASP compatible HTML</param> public void RunRender(IStreamGen sg, OutputPresentationType type) { RunRender(sg, type, ""); }
/// <summary> /// Renders the report using the requested presentation type. /// </summary> /// <param name="sg">IStreamGen for generating result stream</param> /// <param name="type">Presentation type: HTML, XML, PDF, MHT, or ASP compatible HTML</param> /// <param name="prefix">For HTML puts prefix allowing unique name generation</param> public void RunRender(IStreamGen sg, OutputPresentationType type, string prefix, Pages pgs) { if (sg == null) { throw new ArgumentException("IStreamGen argument cannot be null.", "sg"); } RenderHtml rh = null; PageNumber = 1; // reset page numbers TotalPages = 1; IPresent ip; MemoryStreamGen msg = null; switch (type) { case OutputPresentationType.PDF: case OutputPresentationType.RenderPdf_iTextSharp: ip = new RenderPdf_iTextSharp(this, sg); _Report.Run(ip); break; case OutputPresentationType.PDFOldStyle: ip = new RenderPdf(this, sg); this.ItextPDF = false; _Report.Run(ip); break; case OutputPresentationType.TIF: ip = new RenderTif(this, sg); _Report.Run(ip); break; case OutputPresentationType.TIFBW: RenderTif rtif = new RenderTif(this, sg); rtif.RenderColor = false; ip = rtif; _Report.Run(ip); break; case OutputPresentationType.XML: if (_Report.DataTransform != null && _Report.DataTransform.Length > 0) { msg = new MemoryStreamGen(); ip = new RenderXml(this, msg); _Report.Run(ip); RunRenderXmlTransform(sg, msg); } else { ip = new RenderXml(this, sg); _Report.Run(ip); } break; case OutputPresentationType.MHTML: this.RunRenderMht(sg, pgs); break; case OutputPresentationType.CSV: ip = new RenderCsv(this, sg); _Report.Run(ip); break; case OutputPresentationType.RTF: ip = new RenderRtf(this, sg); _Report.Run(ip); break; case OutputPresentationType.Excel: ip = new RenderExcel(this, sg); _Report.Run(ip); break; case OutputPresentationType.ASPHTML: case OutputPresentationType.HTML: default: ip = rh = new RenderHtml(this, sg); rh.Asp = (type == OutputPresentationType.ASPHTML); rh.Prefix = prefix; _Report.Run(ip); // Retain the CSS and JavaScript if (rh != null) { _CSS = rh.CSS; _JavaScript = rh.JavaScript; } break; } sg.CloseMainStream(); _Cache = new RCache(); return; ////if (this.ItextPDF) //// ip = new RenderPdf_iTextSharp(this, sg); ////else // switch (type) // { // case OutputPresentationType.PDF: // case OutputPresentationType.RenderPdf_iTextSharp: // ip = new RenderPdf_iTextSharp(this, sg); // RunRender(ref ip, ref pgs); // break; // case OutputPresentationType.PDFOldStyle: // ip = new RenderPdf(this, sg); // this.ItextPDF = false; // RunRender(ref ip, ref pgs); // break; // case OutputPresentationType.TIF: // ip = new RenderTif(this, sg); // RunRender(ref ip, ref pgs); // break; // case OutputPresentationType.TIFBW: // RenderTif rtif = new RenderTif(this, sg); // rtif.RenderColor = false; // ip = rtif; // RunRender(ref ip, ref pgs); // break; // case OutputPresentationType.XML: // if (_Report.DataTransform != null && _Report.DataTransform.Length > 0) // { // var msg = new MemoryStreamGen(); // ip = new RenderXml(this, msg); // RunRender(ref ip, ref pgs); // RunRenderXmlTransform(sg, msg); // } // else // { // ip = new RenderXml(this, sg); // RunRender(ref ip, ref pgs); // } // break; // case OutputPresentationType.MHTML: // this.RunRenderMht(sg,pgs); // break; // case OutputPresentationType.CSV: // ip = new RenderCsv(this, sg); // RunRender(ref ip, ref pgs); // break; // case OutputPresentationType.RTF: // ip = new RenderRtf(this, sg); // RunRender(ref ip, ref pgs); // break; // case OutputPresentationType.Excel: // ip = new RenderExcel(this, sg); // RunRender(ref ip, ref pgs); // break; // case OutputPresentationType.ASPHTML: // case OutputPresentationType.HTML: // default: // ip = rh = new RenderHtml(this, sg); // rh.Asp = (type == OutputPresentationType.ASPHTML); // rh.Prefix = prefix; // RunRender(ref ip, ref pgs); // // Retain the CSS and JavaScript // if (rh != null) // { // _CSS = rh.CSS; // _JavaScript = rh.JavaScript; // } // break; // } //pgs.CleanUp(); // always want to make sure we cleanup to reduce resource usage //_Cache = new RCache(); //return; // PageNumber = 1; // reset page numbers //TotalPages = 1; //IPresent ip; //MemoryStreamGen msg = null; //switch (type) //{ // case OutputPresentationType.PDF: // case OutputPresentationType.RenderPdf_iTextSharp: // ip =new RenderPdf_iTextSharp(this, sg); // _Report.Run(ip); // break; // case OutputPresentationType.PDFOldStyle: // ip = new RenderPdf(this, sg); // this.ItextPDF = false; // _Report.Run(ip); // break; // case OutputPresentationType.TIF: // ip = new RenderTif(this, sg); // _Report.Run(ip); // break; // case OutputPresentationType.TIFBW: // RenderTif rtif = new RenderTif(this, sg); // rtif.RenderColor = false; // ip = rtif; // _Report.Run(ip); // break; // case OutputPresentationType.XML: // if (_Report.DataTransform != null && _Report.DataTransform.Length > 0) // { // msg = new MemoryStreamGen(); // ip = new RenderXml(this, msg); // _Report.Run(ip); // RunRenderXmlTransform(sg, msg); // } // else // { // ip = new RenderXml(this, sg); // _Report.Run(ip); // } // break; // case OutputPresentationType.MHTML: // this.RunRenderMht(sg); // break; // case OutputPresentationType.CSV: // ip = new RenderCsv(this, sg); // _Report.Run(ip); // break; // case OutputPresentationType.RTF: // ip = new RenderRtf(this, sg); // _Report.Run(ip); // break; // case OutputPresentationType.Excel: // ip = new RenderExcel(this, sg); // _Report.Run(ip); // break; // case OutputPresentationType.ASPHTML: // case OutputPresentationType.HTML: // default: // ip = rh = new RenderHtml(this, sg); // rh.Asp = (type == OutputPresentationType.ASPHTML); // rh.Prefix = prefix; // _Report.Run(ip); // // Retain the CSS and JavaScript // if (rh != null) // { // _CSS = rh.CSS; // _JavaScript = rh.JavaScript; // } // break; //} //sg.CloseMainStream(); // _Cache = new RCache(); // return; }
protected void OnPdfActionActivated(object sender, System.EventArgs e) { // ********************************* object[] param = new object[4]; param[0] = Strings.ButtonCancel_Text; param[1] = Gtk.ResponseType.Cancel; param[2] = Strings.ButtonSave_Text; param[3] = Gtk.ResponseType.Accept; Gtk.FileChooserDialog fc = new Gtk.FileChooserDialog(Strings.FileChooser_SaveFileTo_Title, null, Gtk.FileChooserAction.Save, param); fc.CurrentName = DefaultExportFileName ?? report.Name; if (!restrictedOutputPresentationTypes.Contains(OutputPresentationType.PDF)) { Gtk.FileFilter pdfFilter = new Gtk.FileFilter { Name = "PDF" }; var extensionPDF = ".pdf"; pdfFilter.AddPattern($"*{extensionPDF}"); fc.AddFilter(pdfFilter); } if (!restrictedOutputPresentationTypes.Contains(OutputPresentationType.CSV)) { Gtk.FileFilter csvFilter = new Gtk.FileFilter { Name = "CSV" }; var extensionCSV = ".csv"; csvFilter.AddPattern($"*{extensionCSV}"); fc.AddFilter(csvFilter); } if (!restrictedOutputPresentationTypes.Contains(OutputPresentationType.ExcelTableOnly)) { Gtk.FileFilter excel2007Data = new Gtk.FileFilter { Name = "Excel no formatting (Fast)" }; var extensionXLSX = ".xlsx"; excel2007Data.AddPattern($"*{extensionXLSX}"); fc.AddFilter(excel2007Data); } if (!restrictedOutputPresentationTypes.Contains(OutputPresentationType.Excel2007)) { Gtk.FileFilter excel2007 = new Gtk.FileFilter { Name = "Excel with formatting (Slow)" }; var extensionXLSX = ".xlsx"; excel2007.AddPattern($"*{extensionXLSX}"); fc.AddFilter(excel2007); } if (!restrictedOutputPresentationTypes.Contains(OutputPresentationType.TIF)) { Gtk.FileFilter tiffFilter = new Gtk.FileFilter { Name = "TIFF" }; var extensionTIFF = ".tiff"; tiffFilter.AddPattern($"*{extensionTIFF}"); fc.AddFilter(tiffFilter); } if (!restrictedOutputPresentationTypes.Contains(OutputPresentationType.ASPHTML)) { Gtk.FileFilter asphtmlFilter = new Gtk.FileFilter { Name = "ASP HTML" }; var extensionASPHTML = ".asphtml"; asphtmlFilter.AddPattern($"*{extensionASPHTML}"); fc.AddFilter(asphtmlFilter); } if (!restrictedOutputPresentationTypes.Contains(OutputPresentationType.HTML)) { Gtk.FileFilter htmlFilter = new Gtk.FileFilter { Name = "HTML" }; var extensionHTML = ".html"; htmlFilter.AddPattern($"*{extensionHTML}"); fc.AddFilter(htmlFilter); } if (!restrictedOutputPresentationTypes.Contains(OutputPresentationType.MHTML)) { Gtk.FileFilter mhtmlFilter = new Gtk.FileFilter { Name = "MHTML" }; var extensionMHTML = ".mhtml"; mhtmlFilter.AddPattern($"*{extensionMHTML}"); fc.AddFilter(mhtmlFilter); } if (!restrictedOutputPresentationTypes.Contains(OutputPresentationType.XML)) { Gtk.FileFilter xmlFilter = new Gtk.FileFilter { Name = "XML" }; var extensionXML = ".xml"; xmlFilter.AddPattern($"*{extensionXML}"); fc.AddFilter(xmlFilter); } if (!fc.Filters.Any()) { Gtk.MessageDialog m = new Gtk.MessageDialog(null, Gtk.DialogFlags.Modal, Gtk.MessageType.Info, Gtk.ButtonsType.Ok, false, "Export in all document formats is prohibited"); m.WindowPosition = WindowPosition.Center; m.Run(); m.Destroy(); return; } if (fc.Run() == (int)Gtk.ResponseType.Accept) { try { string searchPattern = "*"; string filename = fc.Filename; OutputPresentationType exportType = OutputPresentationType.PDF; if (fc.Filter.Name == "CSV") { exportType = OutputPresentationType.CSV; if (filename.ToLower().Trim().EndsWith(".csv") == false) { filename = filename + ".csv"; searchPattern = "*.csv"; } } else if (fc.Filter.Name == "PDF") { exportType = OutputPresentationType.PDF; if (filename.ToLower().Trim().EndsWith(".pdf") == false) { filename = filename + ".pdf"; searchPattern = "*.pdf"; } } else if (fc.Filter.Name == "Excel 2007 Data") { exportType = OutputPresentationType.ExcelTableOnly; if (filename.ToLower().Trim().EndsWith(".xlsx") == false) { filename = filename + ".xlsx"; searchPattern = "*.xlsx"; } } else if (fc.Filter.Name == "Excel 2007") { exportType = OutputPresentationType.Excel2007; if (filename.ToLower().Trim().EndsWith(".xlsx") == false) { filename = filename + ".xlsx"; searchPattern = "*.xlsx"; } } else if (fc.Filter.Name == "TIFF") { exportType = OutputPresentationType.TIF; if (filename.ToLower().Trim().EndsWith(".tif") == false) { filename = filename + ".tif"; searchPattern = "*.tif"; } } else if (fc.Filter.Name == "ASP HTML") { exportType = OutputPresentationType.ASPHTML; if (filename.ToLower().Trim().EndsWith(".asphtml") == false) { filename = filename + ".asphtml"; searchPattern = "*.asphtml"; } } else if (fc.Filter.Name == "HTML") { exportType = OutputPresentationType.HTML; if (filename.ToLower().Trim().EndsWith(".html") == false) { filename = filename + ".html"; searchPattern = "*.html"; } } else if (fc.Filter.Name == "MHTML") { exportType = OutputPresentationType.MHTML; if (filename.ToLower().Trim().EndsWith(".mhtml") == false) { filename = filename + ".mhtml"; searchPattern = "*.mhtml"; } } else if (fc.Filter.Name == "XML") { exportType = OutputPresentationType.XML; if (filename.ToLower().Trim().EndsWith(".xml") == false) { filename = filename + ".xml"; searchPattern = "*.xml"; } } string directory = filename.Remove(filename.LastIndexOf(@"\") + 1); var files = Directory.GetFiles(directory, searchPattern); //Check for files with same name in directory if (files.Any()) { for (int i = 0; i < files.Length; i++) { if (files[i] == filename) { //If found files with the same name in directory MessageDialog m = new Gtk.MessageDialog(null, DialogFlags.Modal, MessageType.Question, Gtk.ButtonsType.YesNo, false, Strings.SaveToFile_CheckIf_SameFilesInDir); m.SetPosition(WindowPosition.Center); ResponseType result = (ResponseType)m.Run(); m.Destroy(); if (result == ResponseType.Yes) { // Must use the RunGetData before each export or there is no data. report.RunGetData(this.Parameters); ExportReport(report, filename, exportType); break; } else { break; } } if (i + 1 == files.Length && files[i] != filename) { //If no files with the same name found in directory // Must use the RunGetData before each export or there is no data. report.RunGetData(this.Parameters); ExportReport(report, filename, exportType); break; } } } else { //If no files found in directory // Must use the RunGetData before each export or there is no data. report.RunGetData(this.Parameters); ExportReport(report, filename, exportType); } } catch (Exception ex) { Gtk.MessageDialog m = new Gtk.MessageDialog(null, Gtk.DialogFlags.Modal, Gtk.MessageType.Info, Gtk.ButtonsType.Ok, false, "Error Saving Copy of PDF." + System.Environment.NewLine + ex.Message); m.Run(); m.Destroy(); } } //Don't forget to call Destroy() or the FileChooserDialog window won't get closed. fc.Destroy(); }
protected void OnPdfActionActivated(object sender, System.EventArgs e) { // ********************************* object[] param = new object[4]; param[0] = "Cancel"; param[1] = Gtk.ResponseType.Cancel; param[2] = "Save"; param[3] = Gtk.ResponseType.Accept; Gtk.FileChooserDialog fc = new Gtk.FileChooserDialog("Save File As", null, Gtk.FileChooserAction.Save, param); fc.CurrentName = DefaultExportFileName ?? report.Name; if (!restrictedOutputPresentationTypes.Contains(OutputPresentationType.PDF)) { Gtk.FileFilter pdfFilter = new Gtk.FileFilter { Name = "PDF" }; fc.AddFilter(pdfFilter); } if (!restrictedOutputPresentationTypes.Contains(OutputPresentationType.CSV)) { Gtk.FileFilter csvFilter = new Gtk.FileFilter { Name = "CSV" }; fc.AddFilter(csvFilter); } if (!restrictedOutputPresentationTypes.Contains(OutputPresentationType.ExcelTableOnly)) { Gtk.FileFilter excel2007Data = new Gtk.FileFilter { Name = "Excel no formatting (Fast)" }; fc.AddFilter(excel2007Data); } if (!restrictedOutputPresentationTypes.Contains(OutputPresentationType.Excel2007)) { Gtk.FileFilter excel2007 = new Gtk.FileFilter { Name = "Excel with formatting (Slow)" }; fc.AddFilter(excel2007); } if (!restrictedOutputPresentationTypes.Contains(OutputPresentationType.TIF)) { Gtk.FileFilter tiffFilter = new Gtk.FileFilter { Name = "TIFF" }; fc.AddFilter(tiffFilter); } if (!restrictedOutputPresentationTypes.Contains(OutputPresentationType.ASPHTML)) { Gtk.FileFilter asphtmlFilter = new Gtk.FileFilter { Name = "ASP HTML" }; fc.AddFilter(asphtmlFilter); } if (!restrictedOutputPresentationTypes.Contains(OutputPresentationType.HTML)) { Gtk.FileFilter htmlFilter = new Gtk.FileFilter { Name = "HTML" }; fc.AddFilter(htmlFilter); } if (!restrictedOutputPresentationTypes.Contains(OutputPresentationType.MHTML)) { Gtk.FileFilter mhtmlFilter = new Gtk.FileFilter { Name = "MHTML" }; fc.AddFilter(mhtmlFilter); } if (!restrictedOutputPresentationTypes.Contains(OutputPresentationType.XML)) { Gtk.FileFilter xmlFilter = new Gtk.FileFilter { Name = "XML" }; fc.AddFilter(xmlFilter); } if (!fc.Filters.Any()) { Gtk.MessageDialog m = new Gtk.MessageDialog(null, Gtk.DialogFlags.Modal, Gtk.MessageType.Info, Gtk.ButtonsType.Ok, false, "Export in all document formats is prohibited"); m.WindowPosition = WindowPosition.Center; m.Run(); m.Destroy(); return; } if (fc.Run() == (int)Gtk.ResponseType.Accept) { try { // Must use the RunGetData before each export or there is no data. report.RunGetData(this.Parameters); string filename = fc.Filename; OutputPresentationType exportType = OutputPresentationType.PDF; if (fc.Filter.Name == "CSV") { exportType = OutputPresentationType.CSV; if (filename.ToLower().Trim().EndsWith(".csv") == false) { filename = filename + ".csv"; } } else if (fc.Filter.Name == "PDF") { exportType = OutputPresentationType.PDF; if (filename.ToLower().Trim().EndsWith(".pdf") == false) { filename = filename + ".pdf"; } } else if (fc.Filter.Name == "Excel 2007 Data") { exportType = OutputPresentationType.ExcelTableOnly; if (filename.ToLower().Trim().EndsWith(".xlsx") == false) { filename = filename + ".xlsx"; } } else if (fc.Filter.Name == "Excel 2007") { exportType = OutputPresentationType.Excel2007; if (filename.ToLower().Trim().EndsWith(".xlsx") == false) { filename = filename + ".xlsx"; } } else if (fc.Filter.Name == "TIFF") { exportType = OutputPresentationType.TIF; if (filename.ToLower().Trim().EndsWith(".tif") == false) { filename = filename + ".tif"; } } else if (fc.Filter.Name == "ASP HTML") { exportType = OutputPresentationType.ASPHTML; if (filename.ToLower().Trim().EndsWith(".asphtml") == false) { filename = filename + ".asphtml"; } } else if (fc.Filter.Name == "HTML") { exportType = OutputPresentationType.HTML; if (filename.ToLower().Trim().EndsWith(".html") == false) { filename = filename + ".html"; } } else if (fc.Filter.Name == "MHTML") { exportType = OutputPresentationType.MHTML; if (filename.ToLower().Trim().EndsWith(".mhtml") == false) { filename = filename + ".mhtml"; } } else if (fc.Filter.Name == "XML") { exportType = OutputPresentationType.XML; if (filename.ToLower().Trim().EndsWith(".xml") == false) { filename = filename + ".xml"; } } ExportReport(report, filename, exportType); } catch (Exception ex) { Gtk.MessageDialog m = new Gtk.MessageDialog(null, Gtk.DialogFlags.Modal, Gtk.MessageType.Info, Gtk.ButtonsType.Ok, false, "Error Saving Copy of PDF." + System.Environment.NewLine + ex.Message); m.Run(); m.Destroy(); } } //Don't forget to call Destroy() or the FileChooserDialog window won't get closed. fc.Destroy(); }
private void menuFileSaveAs_Click(object sender, EventArgs e) { MDIChild mc = this.ActiveMdiChild as MDIChild; if (mc == null) { return; } SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = Strings.RdlReader_menuFileSaveAs_Click_FilesFilter; sfd.FilterIndex = 1; Uri file = mc.SourceFile; if (file != null) { int index = file.LocalPath.LastIndexOf('.'); if (index > 1) { sfd.FileName = file.LocalPath.Substring(0, index) + ".pdf"; } else { sfd.FileName = "*.pdf"; } } else { sfd.FileName = "*.pdf"; } if (sfd.ShowDialog(this) != DialogResult.OK) { return; } // save the report in a rendered format string ext = null; int i = sfd.FileName.LastIndexOf('.'); if (i < 1) { ext = string.Empty; } else { ext = sfd.FileName.Substring(i + 1).ToLower(); } OutputPresentationType type = OutputPresentationType.Internal; switch (ext) { case "pdf": type = OutputPresentationType.PDF; break; case "xml": type = OutputPresentationType.XML; break; case "html": type = OutputPresentationType.HTML; break; case "htm": type = OutputPresentationType.HTML; break; case "dmp": type = OutputPresentationType.DMP; break; case "csv": type = OutputPresentationType.CSV; break; case "rtf": type = OutputPresentationType.RTF; break; case "mht": type = OutputPresentationType.MHTML; break; case "mhtml": type = OutputPresentationType.MHTML; break; case "xlsx": type = OutputPresentationType.Excel; break; case "tif": type = OutputPresentationType.TIF; break; case "tiff": type = OutputPresentationType.TIF; break; default: MessageBox.Show(this, String.Format(Strings.RdlReader_SaveG_NotValidFileType, sfd.FileName), Strings.RdlReader_SaveG_SaveAsError, MessageBoxButtons.OK, MessageBoxIcon.Error); break; } if (type == OutputPresentationType.TIF) { DialogResult dr = MessageBox.Show(this, Strings.RdlReader_ShowF_WantSaveColorsInTIF, Strings.RdlReader_ShowF_Export, MessageBoxButtons.YesNoCancel); if (dr == DialogResult.No) { type = OutputPresentationType.TIFBW; } else if (dr == DialogResult.Cancel) { return; } } if (type != OutputPresentationType.Internal) { try { mc.Viewer.SaveAs(sfd.FileName, type); } catch (Exception ex) { MessageBox.Show(this, ex.Message, Strings.RdlReader_SaveG_SaveAsError, MessageBoxButtons.OK, MessageBoxIcon.Error); } } return; }
/// <summary> /// Renders the report using the requested presentation type. /// </summary> /// <param name="sg">IStreamGen for generating result stream</param> /// <param name="type">Presentation type: HTML, XML, PDF, MHT, or ASP compatible HTML</param> /// <param name="prefix">For HTML puts prefix allowing unique name generation</param> public void RunRender(IStreamGen sg, OutputPresentationType type, string prefix) { if (sg == null) { throw new ArgumentException("IStreamGen argument cannot be null.", "sg"); } //RenderHtml rh=null; PageNumber = 1; // reset page numbers TotalPages = 1; IPresent ip; MemoryStreamGen msg = null; switch (type) { case OutputPresentationType.PDF: ip = new RenderPdf(this, sg); _Report.Run(ip); break; case OutputPresentationType.PDFOldStyle: ip = new RenderPdf(this, sg); this.ItextPDF = false; _Report.Run(ip); break; //case OutputPresentationType.TIF: // ip = new RenderTif(this, sg); // _Report.Run(ip); // break; //case OutputPresentationType.TIFBW: // RenderTif rtif = new RenderTif(this, sg); // rtif.RenderColor = false; // ip = rtif; // _Report.Run(ip); // break; case OutputPresentationType.XML: if (_Report.DataTransform != null && _Report.DataTransform.Length > 0) { msg = new MemoryStreamGen(); ip = new RenderXml(this, msg); _Report.Run(ip); RunRenderXmlTransform(sg, msg); } else { ip = new RenderXml(this, sg); _Report.Run(ip); } break; case OutputPresentationType.MHTML: this.RunRenderMht(sg); break; case OutputPresentationType.CSV: ip = new RenderCsv(this, sg); _Report.Run(ip); break; case OutputPresentationType.RTF: ip = new RenderRtf(this, sg); _Report.Run(ip); break; //case OutputPresentationType.Excel: // ip = new RenderExcel(this, sg); // _Report.Run(ip); // break; //case OutputPresentationType.ASPHTML: //case OutputPresentationType.HTML: //default: // ip = rh = new RenderHtml(this, sg); // rh.Asp = (type == OutputPresentationType.ASPHTML); // rh.Prefix = prefix; // _Report.Run(ip); // // Retain the CSS and JavaScript // if (rh != null) // { // _CSS = rh.CSS; // _JavaScript = rh.JavaScript; // } // break; } sg.CloseMainStream(); _Cache = new RCache(); return; }
// Renders the report; RunGetData must be run before this. public void RunRender(IStreamGen sg, OutputPresentationType type) { if (sg == null) throw new ArgumentException("IStreamGen argument cannot be null.", "sg"); PageNumber.RuntimePageNumber = 1; // reset page numbers TotalPages.RuntimePageCount = 1; IPresent ip; MemoryStreamGen msg = null; switch (type) { case OutputPresentationType.PDF: ip = new RenderPdf(this, sg); break; case OutputPresentationType.XML: if (this.DataTransform != null && DataTransform.Length > 0) { msg = new MemoryStreamGen(); ip = new RenderXml(this, msg); } else ip = new RenderXml(this, sg); break; case OutputPresentationType.HTML: default: ip = new RenderHtml(this, sg); break; } Run(ip); // When msg isn't null we have to do a datatransform on the XML in the data stream if (msg != null) { try { string file; if (this.DataTransform[0] != Path.DirectorySeparatorChar) file = this.Folder + Path.DirectorySeparatorChar + _DataTransform; else file = this.Folder + _DataTransform; XmlUtil.XslTrans(file, msg.GetText(), sg.GetStream()); } catch (Exception ex) { this.rl.LogError(8, "Error processing DataTransform " + ex.Message + "\r\n" + ex.StackTrace); } finally { msg.Dispose(); } } sg.CloseMainStream(); return; }
protected void OnPdfActionActivated(object sender, System.EventArgs e) { // ********************************* object[] param = new object[4]; param[0] = "Cancel"; param[1] = Gtk.ResponseType.Cancel; param[2] = "Save"; param[3] = Gtk.ResponseType.Accept; Gtk.FileChooserDialog fc = new Gtk.FileChooserDialog("Save File As", null, Gtk.FileChooserAction.Save, param); fc.CurrentName = DefaultExportFileName ?? report.Name; Gtk.FileFilter pdfFilter = new Gtk.FileFilter(); pdfFilter.Name = "PDF"; Gtk.FileFilter csvFilter = new Gtk.FileFilter(); csvFilter.Name = "CSV"; Gtk.FileFilter asphtmlFilter = new Gtk.FileFilter(); asphtmlFilter.Name = "ASP HTML"; Gtk.FileFilter excel2007 = new Gtk.FileFilter(); excel2007.Name = "Excel 2007"; Gtk.FileFilter htmlFilter = new Gtk.FileFilter(); htmlFilter.Name = "HTML"; Gtk.FileFilter mhtmlFilter = new Gtk.FileFilter(); mhtmlFilter.Name = "MHTML"; Gtk.FileFilter rtfFilter = new Gtk.FileFilter(); rtfFilter.Name = "RTF"; Gtk.FileFilter xmlFilter = new Gtk.FileFilter(); xmlFilter.Name = "XML"; fc.AddFilter(pdfFilter); fc.AddFilter(csvFilter); fc.AddFilter(asphtmlFilter); fc.AddFilter(excel2007); fc.AddFilter(htmlFilter); fc.AddFilter(mhtmlFilter); fc.AddFilter(xmlFilter); if (fc.Run() == (int)Gtk.ResponseType.Accept) { try { // Must use the RunGetData before each export or there is no data. report.RunGetData(this.Parameters); string filename = fc.Filename; OutputPresentationType exportType = OutputPresentationType.PDF; if (fc.Filter.Name == "CSV") { exportType = OutputPresentationType.CSV; if (filename.ToLower().Trim().EndsWith(".csv") == false) { filename = filename + ".csv"; } } else if (fc.Filter.Name == "PDF") { exportType = OutputPresentationType.PDF; if (filename.ToLower().Trim().EndsWith(".pdf") == false) { filename = filename + ".pdf"; } } else if (fc.Filter.Name == "ASP HTML") { exportType = OutputPresentationType.ASPHTML; if (filename.ToLower().Trim().EndsWith(".asphtml") == false) { filename = filename + ".asphtml"; } } else if (fc.Filter.Name == "Excel 2007") { exportType = OutputPresentationType.Excel; if (filename.ToLower().Trim().EndsWith(".xlsx") == false) { filename = filename + ".xlsx"; } } else if (fc.Filter.Name == "HTML") { exportType = OutputPresentationType.HTML; if (filename.ToLower().Trim().EndsWith(".html") == false) { filename = filename + ".html"; } } else if (fc.Filter.Name == "MHTML") { exportType = OutputPresentationType.MHTML; if (filename.ToLower().Trim().EndsWith(".mhtml") == false) { filename = filename + ".mhtml"; } } else if (fc.Filter.Name == "XML") { exportType = OutputPresentationType.XML; if (filename.ToLower().Trim().EndsWith(".xml") == false) { filename = filename + ".xml"; } } ExportReport(report, filename, exportType); } catch (Exception ex) { Gtk.MessageDialog m = new Gtk.MessageDialog(null, Gtk.DialogFlags.Modal, Gtk.MessageType.Info, Gtk.ButtonsType.Ok, false, "Error Saving Copy of PDF." + System.Environment.NewLine + ex.Message); m.Run(); m.Destroy(); } } //Don't forget to call Destroy() or the FileChooserDialog window won't get closed. fc.Destroy(); }
/// <summary> /// Export the report to memory stream /// </summary> /// <param name="source">Xml source of report</param> /// <param name="parameters">Example: parameter1=someValue¶meter2=anotherValue</param> /// <param name="connectionString">Relace all Connection string in report.</param> /// <param name="overwriteSubreportConnection">If true connection string in subreport also will be overwrite</param> public static MemoryStream ExportToMemoryStream(string source, string parameters, string connectionStr, OutputPresentationType exportType, bool overwriteSubreportCon = false) { connectionString = connectionStr; overwriteSubreportConnection = overwriteSubreportCon; return(ExportToMemoryStream(source, parameters, exportType)); }