Example #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;
 }
Example #2
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;
        }