예제 #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
		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;
		}
예제 #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.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.DMP:
                ip = new RenderDMP(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;
        }
예제 #4
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.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.DMP:
                    ip = new RenderDMP(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;
		}