public int RenderReport(ReportControlSession session, string viewerInstanceIdentifier, PageCountMode pageCountMode, int pageNumber, InteractivityPostBackMode interactivityMode, string searchState, string replacementRoot, string hyperlinkTarget, string alertMessage, DeviceInfoCollection initialDeviceInfos, string browserMode, bool sizeToContent) { if (this.m_reportStream != null) { throw new InvalidOperationException(); } this.m_session = session; this.ViewIteration++; this.m_pageNumber = pageNumber; this.m_viewerInstanceIdentifier = viewerInstanceIdentifier; this.m_alertMessage = alertMessage; this.m_interactivityMode = interactivityMode; bool useImageConsolidation = !sizeToContent; NameValueCollection deviceInfo = this.CreateDeviceInfo(initialDeviceInfos, session.Report, pageNumber, searchState, replacementRoot, hyperlinkTarget, browserMode, useImageConsolidation, this.EnableHybrid); this.m_reportStream = session.RenderReportHTML(deviceInfo, pageCountMode, out this.m_scrollScript, out this.m_pageStyles); this.m_autoRefreshInterval = session.Report.AutoRefreshInterval; int totalPages = session.Report.GetTotalPages(); if (this.m_pageNumber > totalPages) { this.m_pageNumber = totalPages; } this.m_autoRefreshInterval = session.Report.AutoRefreshInterval; if (sizeToContent) { this.m_scrollScript = null; } string styleStreamName = LocalHtmlRenderer.GetStyleStreamName(pageNumber); string text = default(string); byte[] streamImage = session.GetStreamImage(styleStreamName, (string)null, out text); this.m_styleBytesString = null; if (streamImage != null && streamImage.Length > 0) { Encoding encoding = new UTF8Encoding(false); this.m_styleBytesString = encoding.GetString(streamImage); } return(this.m_pageNumber); }
protected ReportDataOperation(IReportServerConnectionProvider connectionProvider, bool requiresFullReportLoad = true) : base(connectionProvider) { NameValueCollection requestParameters = new NameValueCollection(); //HttpHandler.RequestParameters; bool flag = base.ProcessingMode == ProcessingMode.Local; if (base.IsUsingSession) { ReportHierarchy reportHierarchy = base.ReportHierarchy; int clientStackSize = HandlerOperation.ParseRequiredInt(requestParameters, "ReportStack"); ReportInfo reportInfo = reportHierarchy.Peek(); if (flag) { this.m_reportControlSession = reportInfo.LocalSession; } else { //this.m_reportControlSession = reportInfo.ServerSession; } } else { if (flag) { throw new HttpHandlerInputException(new NotSupportedException()); } //ServerReport serverReport = base.CreateTempServerReport(); //serverReport.LoadFromUrlQuery(requestParameters, requiresFullReportLoad); //this.m_reportControlSession = new ServerModeSession(serverReport); } int culture = HandlerOperation.ParseRequiredInt(requestParameters, "Culture"); int culture2 = HandlerOperation.ParseRequiredInt(requestParameters, "UICulture"); bool useUserOverride = HandlerOperation.ParseRequiredBool(requestParameters, "CultureOverrides"); bool useUserOverride2 = HandlerOperation.ParseRequiredBool(requestParameters, "UICultureOverrides"); Thread.CurrentThread.CurrentCulture = new CultureInfo(culture, useUserOverride); Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture2, useUserOverride2); }
public static void Render(NameValueCollection deviceInfo, PageCountMode pageCountMode, ReportControlSession reportControlSession, AspNetCore.ReportingServices.Interfaces.CreateAndRegisterStream streamCallback, out string scrollScript, out string pageStyle) { TextWriter htmlTextWriter = null; try { deviceInfo.Add("OnlyVisibleStyles", "True"); htmlTextWriter = LocalHtmlRenderer.CreateWriter(reportControlSession.Report.DisplayNameForUse, "text/html", streamCallback, AspNetCore.ReportingServices.Interfaces.StreamOper.CreateAndRegister); NameValueCollection browserCaps = new NameValueCollection(); ViewerRendererDeviceInfo viewerRendererDeviceInfo = new ViewerRendererDeviceInfo(); viewerRendererDeviceInfo.ParseDeviceInfo(deviceInfo, new NameValueCollection()); HTML5ViewerRenderer hTML5ViewerRenderer = new HTML5ViewerRenderer(reportControlSession, streamCallback, viewerRendererDeviceInfo, browserCaps, SecondaryStreams.Server, pageCountMode, null); hTML5ViewerRenderer.Render(htmlTextWriter); scrollScript = hTML5ViewerRenderer.FixedHeaderScript; //var stream=(streamCallback.Target as StreamCache).GetMainStream(true); //System.IO.StreamReader sr = new StreamReader(stream); //var html=sr.ReadToEnd(); pageStyle = hTML5ViewerRenderer.PageStyle; } catch (LocalProcessingException) { throw; } catch (Exception renderingException) { throw renderingException; } finally { if (htmlTextWriter != null) { htmlTextWriter.Flush(); } } }