Пример #1
0
 private void RunRenderXmlTransform(IStreamGen sg, MemoryStreamGen msg)
 {
     try
     {
         string file;
         if (_Report.DataTransform[0] != Path.DirectorySeparatorChar)
         {
             file = this.Folder + Path.DirectorySeparatorChar + _Report.DataTransform;
         }
         else
         {
             file = this.Folder + _Report.DataTransform;
         }
         XmlUtil.XslTrans(file, msg.GetText(), sg.GetStream());
     }
     catch (Exception ex)
     {
         rl.LogError(8, "Error processing DataTransform " + ex.Message + "\r\n" + ex.StackTrace);
     }
     finally
     {
         msg.Dispose();
     }
     return;
 }
Пример #2
0
        void RunRenderMht(IStreamGen sg)
        {
            OneFileStreamGen temp = null;
            FileStream       fs   = null;

            try
            {
                string tempHtmlReportFileName = Path.ChangeExtension(Path.GetTempFileName(), "htm");
                temp = new OneFileStreamGen(tempHtmlReportFileName, true);
                RunRender(temp, OutputPresentationType.HTML);
                temp.CloseMainStream();

                // Create the mht file (into a temporary file position)
                var    mhtConverter = new MhtBuilder();
                string fileName     = Path.ChangeExtension(Path.GetTempFileName(), "mht");
                mhtConverter.SavePageArchive(fileName, "file://" + tempHtmlReportFileName);

                // clean up the temporary files
                foreach (string tempFileName in temp.FileList)
                {
                    try
                    {
                        File.Delete(tempFileName);
                    }
                    catch
                    {
                    }
                }

                // Copy the mht file to the requested stream
                Stream os = sg.GetStream();
                fs = File.OpenRead(fileName);
                var ba = new byte[4096];
                int rb = 0;
                while ((rb = fs.Read(ba, 0, ba.Length)) > 0)
                {
                    os.Write(ba, 0, rb);
                }
            }
            catch (Exception ex)
            {
                rl.LogError(8, "Error converting HTML to MHTML " + ex.Message +
                            Environment.NewLine + ex.StackTrace);
            }
            finally
            {
                if (temp != null)
                {
                    temp.CloseMainStream();
                }
                if (fs != null)
                {
                    fs.Close();
                }
                _Cache = new RCache();
            }
        }
Пример #3
0
        public void End()
        {
            Stream fs = _sg.GetStream();

            _Excel.WriteExcel(fs);

            if (_g != null)
            {
                _g.Dispose();
                _g = null;
            }
            if (_bm != null)
            {
                _bm.Dispose();
                _bm = null;
            }
            return;
        }
Пример #4
0
        Stream tw; // where the output is going

        #endregion Fields

        #region Constructors

        public RenderPdf(Report rep, IStreamGen sg)
        {
            r = rep;
            tw = sg.GetStream();
        }
Пример #5
0
        static readonly int MEASUREMAX = 32;  //  guess I'm wrong -- .Net 2 doesn't seem to have a limit; 1.1 limit was 32

        public RenderPdf(Report rep, IStreamGen sg)
        {
            r  = rep;
            tw = sg.GetStream();
        }
Пример #6
0
        Stream _streamGen; // where the output is going

        #endregion Fields

        #region Constructors

        public RenderBase(Report rep, IStreamGen sg)
        {
            _streamGen = sg.GetStream();
            _report = rep;
        }
Пример #7
0
 private void RunRenderXmlTransform(IStreamGen sg, MemoryStreamGen msg)
 {
     try
     {
         string file;
         if (_Report.DataTransform[0] != Path.DirectorySeparatorChar)
             file = this.Folder + Path.DirectorySeparatorChar + _Report.DataTransform;
         else
             file = this.Folder + _Report.DataTransform;
         XmlUtil.XslTrans(file, msg.GetText(), sg.GetStream());
     }
     catch (Exception ex)
     {
         rl.LogError(8, "Error processing DataTransform " + ex.Message + "\r\n" + ex.StackTrace);
     }
     finally
     {
         msg.Dispose();
     }
     return;
 }
Пример #8
0
        private void RunRenderMht(IStreamGen sg)
        {
            OneFileStreamGen temp = null;
            FileStream fs=null;
            try
            {
                string tempHtmlReportFileName = Path.ChangeExtension(Path.GetTempFileName(), "htm");
                temp = new OneFileStreamGen(tempHtmlReportFileName, true);
                RunRender(temp, OutputPresentationType.HTML);
                temp.CloseMainStream();

                // Create the mht file (into a temporary file position)
                MhtBuilder mhtConverter = new MhtBuilder();
                string fileName = Path.ChangeExtension(Path.GetTempFileName(), "mht");
                mhtConverter.SavePageArchive(fileName, "file://" + tempHtmlReportFileName);

                // clean up the temporary files
                foreach (string tempFileName in temp.FileList)
                {
                    try
                    {
                        File.Delete(tempFileName);
                    }
                    catch{}
                }

                // Copy the mht file to the requested stream
                Stream os = sg.GetStream();
                fs = File.OpenRead(fileName);
                byte[] ba = new byte[4096];
                int rb=0;
                while ((rb = fs.Read(ba, 0, ba.Length)) > 0)
                {
                    os.Write(ba, 0, rb);
                }

            }
            catch (Exception ex)
            {
                rl.LogError(8, "Error converting HTML to MHTML " + ex.Message +
                                    Environment.NewLine + ex.StackTrace);
            }
            finally
            {
                if (temp != null)
                    temp.CloseMainStream();
                if (fs != null)
                    fs.Close();
                _Cache = new RCache();
            }
        }
Пример #9
0
 public RenderPdf(Report report, IStreamGen stream)
 {
     this.report = report;
     outputStream = stream.GetStream();
 }
Пример #10
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;
		}
Пример #11
0
 public RenderTif(Report rep, IStreamGen sg)
 {
     r            = rep;
     tw           = sg.GetStream();
     _RenderColor = true;
 }
Пример #12
0
        private float rowHeight;    //行高

        public RenderiTextPdf(Report r, IStreamGen sg)
        {
            this._Report = r;
            this.tw      = sg.GetStream();
        }
Пример #13
0
 public RenderPdf(Report report, IStreamGen stream)
 {
     this.report  = report;
     outputStream = stream.GetStream();
 }
Пример #14
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;
        }
Пример #15
0
 public RenderBase(Report rep, IStreamGen sg)
 {
     _streamGen = sg.GetStream();
     _report    = rep;
 }
Пример #16
0
 public RenderTif(Report rep, IStreamGen sg)
 {
     r = rep;
     tw = sg.GetStream();
     _RenderColor = true;
 }