Пример #1
0
		public bool Render(Microsoft.ReportingServices.OnDemandReportRendering.Report report, NameValueCollection reportServerParameters, NameValueCollection deviceInfo, NameValueCollection clientCapabilities, ref Hashtable renderProperties, CreateAndRegisterStream createAndRegisterStream)
		{
			try
			{
				ParseParameters(deviceInfo);
				Stream outputStream = createAndRegisterStream(report.Name, "rpl", null, "application/octet-stream", willSeek: false, StreamOper.CreateAndRegister);
				Microsoft.ReportingServices.Rendering.SPBProcessing.SPBProcessing sPBProcessing = null;
				using (sPBProcessing = new Microsoft.ReportingServices.Rendering.SPBProcessing.SPBProcessing(report, createAndRegisterStream, registerEvents: true, m_rplVersion, ref renderProperties))
				{
					sPBProcessing.SetContext(m_spbContext);
					sPBProcessing.GetNextPage(outputStream);
					sPBProcessing.UpdateRenderProperties(ref renderProperties);
				}
				return false;
			}
			catch (ReportRenderingException)
			{
				throw;
			}
			catch (Exception ex2)
			{
				if (AsynchronousExceptionDetection.IsStoppingException(ex2))
				{
					throw;
				}
				throw new ReportRenderingException(ex2, unexpected: true);
			}
		}
        protected override RPLReport GetNextPage()
        {
            Microsoft.ReportingServices.Rendering.SPBProcessing.SPBProcessing sPBProcessing = m_spbProcessing as Microsoft.ReportingServices.Rendering.SPBProcessing.SPBProcessing;
            bool flag = m_deviceInfo.Section > 0 && !m_deviceInfo.HasActionScript;

            sPBProcessing.GetNextPage(out RPLReport rplReport, flag);
            if (flag)
            {
                m_pageBookmarks = sPBProcessing.PageBookmarks;
            }
            return(rplReport);
        }
Пример #3
0
        internal override ServerRenderer CreateRenderer(Microsoft.ReportingServices.OnDemandReportRendering.Report report, NameValueCollection reportServerParams, DeviceInfo deviceInfo, NameValueCollection rawDeviceInfo, NameValueCollection browserCaps, CreateAndRegisterStream createAndRegisterStreamCallback, ref Hashtable renderProperties, int totalPages)
        {
            Dictionary <string, string> globalBookmarks = Microsoft.ReportingServices.Rendering.SPBProcessing.SPBProcessing.CollectBookmarks(report, totalPages);

            Microsoft.ReportingServices.Rendering.SPBProcessing.SPBProcessing spbProcessing = new Microsoft.ReportingServices.Rendering.SPBProcessing.SPBProcessing(report, createAndRegisterStreamCallback, registerEvents: false, ref renderProperties);
            SecondaryStreams secondaryStreams = SecondaryStreams.Temporary;
            ServerRenderer   serverRenderer   = new MHTMLRenderer(new ROMReport(report), spbProcessing, reportServerParams, deviceInfo, rawDeviceInfo, browserCaps, createAndRegisterStreamCallback, secondaryStreams);

            serverRenderer.InitializeReport();
            SetParameters(serverRenderer, deviceInfo, report);
            serverRenderer.GlobalBookmarks = globalBookmarks;
            return(serverRenderer);
        }
        internal virtual Html5ServerRenderer CreateRenderer(Microsoft.ReportingServices.OnDemandReportRendering.Report report, NameValueCollection reportServerParams, DeviceInfo deviceInfo, NameValueCollection rawDeviceInfo, NameValueCollection browserCaps, CreateAndRegisterStream createAndRegisterStreamCallback, ref Hashtable renderProperties, int totalPages)
        {
            Dictionary <string, string> globalBookmarks = new Dictionary <string, string>();

            if (!deviceInfo.HasActionScript && (deviceInfo.Section == 0 || !deviceInfo.AllowScript))
            {
                globalBookmarks = Microsoft.ReportingServices.Rendering.SPBProcessing.SPBProcessing.CollectBookmarks(report, totalPages);
            }
            Microsoft.ReportingServices.Rendering.SPBProcessing.SPBProcessing spbProcessing = new Microsoft.ReportingServices.Rendering.SPBProcessing.SPBProcessing(report, createAndRegisterStreamCallback, registerEvents: true, ref renderProperties);
            SecondaryStreams    secondaryStreams    = SecondaryStreams.Embedded;
            Html5ServerRenderer html5ServerRenderer = new Html5ServerRenderer(new ROMReport(report), spbProcessing, reportServerParams, deviceInfo, rawDeviceInfo, browserCaps, createAndRegisterStreamCallback, secondaryStreams);

            html5ServerRenderer.InitializeReport();
            SetParameters(html5ServerRenderer, deviceInfo, report);
            html5ServerRenderer.GlobalBookmarks = globalBookmarks;
            return(html5ServerRenderer);
        }
        public bool Render(Microsoft.ReportingServices.OnDemandReportRendering.Report report, NameValueCollection reportServerParameters, NameValueCollection deviceInfo, NameValueCollection clientCapabilities, ref Hashtable someProps, CreateAndRegisterStream createAndRegisterStream)
        {
            double pageHeight = double.MaxValue;

            using (Microsoft.ReportingServices.Rendering.SPBProcessing.SPBProcessing sPBProcessing = new Microsoft.ReportingServices.Rendering.SPBProcessing.SPBProcessing(report, createAndRegisterStream, pageHeight))
            {
                DeviceInfo deviceInfo2 = new DeviceInfo(deviceInfo);
                SPBContext sPBContext  = new SPBContext();
                sPBContext.StartPage                = 0;
                sPBContext.EndPage                  = 0;
                sPBContext.MeasureItems             = false;
                sPBContext.AddSecondaryStreamNames  = true;
                sPBContext.AddToggledItems          = deviceInfo2.ExpandToggles;
                sPBContext.AddFirstPageHeaderFooter = true;
                sPBProcessing.SetContext(sPBContext);
                using (IWordWriter writer = NewWordWriter())
                {
                    WordRenderer wordRenderer = NewWordRenderer(createAndRegisterStream, deviceInfo2, sPBProcessing, writer, report.Name);
                    try
                    {
                        return(wordRenderer.Render());
                    }
                    catch (ReportRenderingException)
                    {
                        throw;
                    }
                    catch (Exception ex2)
                    {
                        if (AsynchronousExceptionDetection.IsStoppingException(ex2))
                        {
                            throw;
                        }
                        throw new ReportRenderingException(ex2, unexpected: true);
                    }
                }
            }
        }
 public Html5ServerRenderer(ROMReport report, Microsoft.ReportingServices.Rendering.SPBProcessing.SPBProcessing spbProcessing, NameValueCollection reportServerParams, DeviceInfo deviceInfo, NameValueCollection rawDeviceInfo, NameValueCollection browserCaps, CreateAndRegisterStream createAndRegisterStreamCallback, SecondaryStreams secondaryStreams)
     : base(report, spbProcessing, reportServerParams, deviceInfo, rawDeviceInfo, browserCaps, createAndRegisterStreamCallback, secondaryStreams)
 {
 }
 internal WordOpenXmlRenderer(CreateAndRegisterStream createAndRegisterStream, Microsoft.ReportingServices.Rendering.SPBProcessing.SPBProcessing spbProcessing, IWordWriter writer, DeviceInfo deviceInfo, string reportName)
     : base(createAndRegisterStream, spbProcessing, writer, deviceInfo, reportName)
 {
 }
 protected override WordRenderer NewWordRenderer(CreateAndRegisterStream createAndRegisterStream, DeviceInfo deviceInfoObj, Microsoft.ReportingServices.Rendering.SPBProcessing.SPBProcessing spbProcessing, IWordWriter writer, string reportName)
 {
     return(new Word97Renderer(createAndRegisterStream, spbProcessing, writer, deviceInfoObj, reportName));
 }
 protected abstract WordRenderer NewWordRenderer(CreateAndRegisterStream createAndRegisterStream, DeviceInfo deviceInfoObj, Microsoft.ReportingServices.Rendering.SPBProcessing.SPBProcessing spbProcessing, IWordWriter writer, string reportName);
Пример #10
0
 public bool Render(Microsoft.ReportingServices.OnDemandReportRendering.Report report, NameValueCollection reportServerParameters, NameValueCollection deviceInfo, NameValueCollection clientCapabilities, ref Hashtable renderProperties, CreateAndRegisterStream createAndRegisterStream)
 {
     try
     {
         ParseDeviceinfo(deviceInfo);
         Stream     output     = CreateFinalOutputStream(report.Name, createAndRegisterStream);
         MainEngine mainEngine = new MainEngine(createAndRegisterStream, this);
         if (report.HasDocumentMap && !m_omitDocumentMap)
         {
             m_addedDocMap = mainEngine.AddDocumentMap(report.DocumentMap);
             if (m_addedDocMap)
             {
                 mainEngine.NextPage();
             }
         }
         using (Microsoft.ReportingServices.Rendering.SPBProcessing.SPBProcessing sPBProcessing = new Microsoft.ReportingServices.Rendering.SPBProcessing.SPBProcessing(report, createAndRegisterStream, double.MaxValue))
         {
             SPBContext sPBContext = new SPBContext();
             sPBContext.StartPage               = 0;
             sPBContext.EndPage                 = 0;
             sPBContext.MeasureItems            = false;
             sPBContext.AddSecondaryStreamNames = true;
             sPBContext.AddToggledItems         = true;
             sPBContext.AddOriginalValue        = true;
             sPBProcessing.SetContext(sPBContext);
             RPLReport rplReport = null;
             bool      flag      = true;
             while (!sPBProcessing.Done)
             {
                 sPBProcessing.GetNextPage(out rplReport);
                 if (rplReport == null)
                 {
                     continue;
                 }
                 if (flag)
                 {
                     flag = false;
                     if (sPBProcessing.Done)
                     {
                         mainEngine.AdjustFirstWorksheetName(report.Name, m_addedDocMap);
                     }
                 }
                 else
                 {
                     mainEngine.NextPage();
                 }
                 mainEngine.RenderRPLPage(rplReport, !m_simplePageHeaders, m_suppressOutlines);
                 rplReport.Release();
                 rplReport = null;
             }
             mainEngine.Save(output);
         }
         if (report.JobContext != null)
         {
             IJobContext jobContext = report.JobContext;
             lock (jobContext.SyncRoot)
             {
                 if (jobContext.AdditionalInfo.ScalabilityTime == null)
                 {
                     jobContext.AdditionalInfo.ScalabilityTime = new ScaleTimeCategory();
                 }
                 jobContext.AdditionalInfo.ScalabilityTime.Rendering = mainEngine.TotalScaleTimeMs;
                 if (jobContext.AdditionalInfo.EstimatedMemoryUsageKB == null)
                 {
                     jobContext.AdditionalInfo.EstimatedMemoryUsageKB = new EstimatedMemoryUsageKBCategory();
                 }
                 jobContext.AdditionalInfo.EstimatedMemoryUsageKB.Rendering = mainEngine.PeakMemoryUsageKB;
             }
         }
         mainEngine.Dispose();
         return(false);
     }
     catch (ReportRenderingException)
     {
         throw;
     }
     catch (Exception ex2)
     {
         if (AsynchronousExceptionDetection.IsStoppingException(ex2))
         {
             throw;
         }
         throw new ReportRenderingException(ex2, unexpected: true);
     }
 }