예제 #1
0
        /// <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&parameter2=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();
                }
            }
        }
예제 #3
0
        /// <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;
        }
예제 #4
0
        // 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;
        }
예제 #5
0
        public Stream GetReport(string templateName, List <Param> paramList, OutputPresentationType reportType)
        {
            var outputFile = BuildReport(templateName, paramList, reportType);
            var result     = GetMemoryStreamFromFileName(outputFile);

            DeleteFile(outputFile);
            return(result);
        }
예제 #6
0
		// 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;
		}
예제 #7
0
        // 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;
        }
예제 #8
0
        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);
        }
예제 #9
0
        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&parameter2=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&parameter2=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&parameter2=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);
        }
예제 #14
0
 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);
 }
예제 #16
0
        /// <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;
        }
예제 #17
0
 public void SaveAs(string filename, OutputPresentationType type)
 {
     this.rdlPreview.SaveAs(filename, type);
 }
예제 #18
0
 public void SaveAs(string filename, OutputPresentationType type)
 {
     rdlEditPreview1.SaveAs(filename, type);
 }
예제 #19
0
        /// <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;
        }
예제 #20
0
        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;
        }
예제 #21
0
        // 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;
        }
예제 #22
0
        private string GetOutputFileName(string templateName, OutputPresentationType outputPresentationType)
        {
            var now = System.DateTime.UtcNow;

            return(Path.Combine(RootFolder, TempFolder) + @"/" + $"{templateName}{GeneralUtils.GetDateTimeMark()}_{now.Millisecond}.{GetOutputFileNameExtension(outputPresentationType)}");
        }
예제 #23
0
 public void SaveAs(string filename, OutputPresentationType type)
 {
     this.rdlPreview.SaveAs(filename, type);
 }
        /// <summary>
        /// Export the report to file
        /// </summary>
        /// <param name='sourcefile'>
        /// Filename.
        /// </param>
        /// <param name='parameters'>
        /// Example: parameter1=someValue&parameter2=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);
        }
예제 #25
0
 public void SaveAs(string filename, OutputPresentationType type)
 {
     rdlDesigner.SaveAs(filename, type);
 }
예제 #26
0
 /// <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);
 }
예제 #27
0
 /// <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, "");
 }
예제 #28
0
        /// <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;
        }
예제 #29
0
        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();
        }
예제 #30
0
        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();
        }
예제 #31
0
        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;
        }
예제 #32
0
        /// <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;
        }
예제 #33
0
 /// <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, "");
 }
예제 #34
0
		// 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;
		}
예제 #35
0
        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();
        }
예제 #36
0
 public void SaveAs(string filename, OutputPresentationType type)
 {
     rdlDesigner.SaveAs(filename, type);
 }
예제 #37
0
        /// <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 memory stream
        /// </summary>
        /// <param name="source">Xml source of report</param>
        /// <param name="parameters">Example: parameter1=someValue&parameter2=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));
        }