internal override bool Render() { RPLItemMeasurement rPLItemMeasurement = null; bool flag = true; string author = ""; string title = ""; string description = ""; AutoFit autoFit = m_writer.AutoFit; float width = 0f; float leftMargin = 0f; float rightMargin = 0f; RPLPageLayout rplPageLayout = null; List <RPLReport> rplReportCache = new List <RPLReport>(); bool hasHeaderSoFar = false; bool hasFooterSoFar = false; SectionEntry sectionEntry = null; while (!m_spbProcessing.Done) { if (!flag) { m_writer.WritePageBreak(); } m_spbProcessing.GetNextPage(out m_rplReport); RPLPageContent rPLPageContent = m_rplReport.RPLPaginatedPages[0]; RPLReportSection rPLReportSection = rPLPageContent.GetNextReportSection(); bool pageCached = false; bool firstSection = true; while (rPLReportSection != null) { rPLItemMeasurement = rPLReportSection.Columns[0]; float width2 = rPLReportSection.BodyArea.Width; RPLHeaderFooter footer = null; SectionEntry se = null; if (!firstSection || sectionEntry == null || string.CompareOrdinal(sectionEntry.SectionId, rPLReportSection.ID) != 0) { if (RSTrace.RenderingTracer.TraceVerbose) { RSTrace.RenderingTracer.Trace("The left or right margin is either <0 or the sum exceeds the page width."); } sectionEntry = (se = RenderHeaderFooters(rPLReportSection, firstSection, ref pageCached, rplReportCache, ref footer, ref hasHeaderSoFar, ref hasFooterSoFar)); } flag = SetFirstPageDimensions(flag, rPLPageContent, ref rplPageLayout, ref leftMargin, ref rightMargin, ref width, ref title, ref author, ref description); width = RevisePageDimensions(leftMargin, rightMargin, width, width2, autoFit); RenderHeaderBetweenSections(rPLReportSection, firstSection); RenderBodyContent(width2, rPLItemMeasurement); rPLReportSection = AdvanceToNextSection(rPLPageContent, rPLReportSection, ref firstSection, sectionEntry, footer, se); } if (!m_spbProcessing.Done && !pageCached) { m_rplReport.Release(); } } m_writer.WriteParagraphEnd(); m_writer.SetPageDimensions(m_pageHeight, width, leftMargin, rightMargin, rplPageLayout.MarginTop, rplPageLayout.MarginBottom); FinishRendering(rplReportCache, title, author, description); return(true); }
public override bool Render() { RPLItemMeasurement rPLItemMeasurement = null; bool flag = true; string author = ""; string title = ""; string description = ""; AutoFit autoFit = base.m_writer.AutoFit; float num = 0f; float leftMargin = 0f; float rightMargin = 0f; RPLPageLayout rPLPageLayout = null; List <RPLReport> rplReportCache = new List <RPLReport>(); bool flag2 = false; bool flag3 = false; SectionEntry sectionEntry = null; while (!base.m_spbProcessing.Done) { if (!flag) { base.m_writer.WritePageBreak(); } base.m_spbProcessing.GetNextPage(out base.m_rplReport); RPLPageContent rPLPageContent = base.m_rplReport.RPLPaginatedPages[0]; RPLReportSection rPLReportSection = rPLPageContent.GetNextReportSection(); bool flag4 = false; bool flag5 = true; while (rPLReportSection != null) { rPLItemMeasurement = rPLReportSection.Columns[0]; float width = rPLReportSection.BodyArea.Width; RPLHeaderFooter footer = null; SectionEntry se = null; if (!flag5 || sectionEntry == null || string.CompareOrdinal(sectionEntry.SectionId, rPLReportSection.ID) != 0) { if (RSTrace.RenderingTracer.TraceVerbose) { RSTrace.RenderingTracer.Trace("The left or right margin is either <0 or the sum exceeds the page width."); } sectionEntry = (se = this.RenderHeaderFooters(rPLReportSection, flag5, ref flag4, rplReportCache, ref footer, ref flag2, ref flag3)); } flag = base.SetFirstPageDimensions(flag, rPLPageContent, ref rPLPageLayout, ref leftMargin, ref rightMargin, ref num, ref title, ref author, ref description); num = base.RevisePageDimensions(leftMargin, rightMargin, num, width, autoFit); base.RenderHeaderBetweenSections(rPLReportSection, flag5); base.RenderBodyContent(width, rPLItemMeasurement); rPLReportSection = base.AdvanceToNextSection(rPLPageContent, rPLReportSection, ref flag5, sectionEntry, footer, se); } if (!base.m_spbProcessing.Done && !flag4) { base.m_rplReport.Release(); } } base.m_writer.WriteParagraphEnd(); base.m_writer.SetPageDimensions(base.m_pageHeight, num, leftMargin, rightMargin, rPLPageLayout.MarginTop, rPLPageLayout.MarginBottom); base.FinishRendering(rplReportCache, title, author, description); return(true); }
private SectionEntry RenderHeaderFooters(RPLReportSection section, bool firstSection, ref bool pageCached, List <RPLReport> rplReportCache, ref RPLHeaderFooter footer, ref bool hasHeaderSoFar, ref bool hasFooterSoFar) { SectionEntry result = new SectionEntry(section); if (section.Footer != null) { footer = (section.Footer.Element as RPLHeaderFooter); if (footer.Children != null && footer.Children.Length != 0) { hasFooterSoFar = true; } } if (section.Header != null) { RPLHeaderFooter rPLHeaderFooter = section.Header.Element as RPLHeaderFooter; if (rPLHeaderFooter.Children != null && rPLHeaderFooter.Children.Length != 0) { hasHeaderSoFar = true; } } CachePage(ref pageCached, rplReportCache); m_inHeaderFooter = true; if (firstSection) { m_needsToResetTextboxes = true; } RPLItemMeasurement header = section.Header; if (hasHeaderSoFar) { m_writer.StartHeader(); if (header != null) { RenderRectangle((RPLContainer)header.Element, 0f, canGrow: true, header, new BorderContext(), inTablix: false, ignoreStyles: true); } m_writer.FinishHeader(); } RPLItemMeasurement footer2 = section.Footer; if (hasFooterSoFar) { m_writer.StartFooter(); if (footer2 != null) { RenderRectangle((RPLContainer)footer2.Element, 0f, canGrow: true, footer2, new BorderContext(), inTablix: false, ignoreStyles: true); } m_writer.FinishFooter(); } if (firstSection) { bool flag = header != null; bool flag2 = flag && !(header.Element.ElementPropsDef as RPLHeaderFooterPropsDef).PrintOnFirstPage; bool flag3 = footer2 != null; bool flag4 = flag3 && !(footer2.Element.ElementPropsDef as RPLHeaderFooterPropsDef).PrintOnFirstPage; if ((flag2 || flag4) && (flag || flag3)) { if (hasHeaderSoFar) { m_writer.StartHeader(firstPage: true); if (flag && !flag2) { RenderRectangle((RPLContainer)header.Element, 0f, canGrow: true, header, new BorderContext(), inTablix: false, ignoreStyles: true); } m_writer.FinishHeader(); } if (hasFooterSoFar) { m_writer.StartFooter(firstPage: true); if (flag3 && !flag4) { RenderRectangle((RPLContainer)footer2.Element, 0f, canGrow: true, footer2, new BorderContext(), inTablix: false, ignoreStyles: true); } m_writer.FinishFooter(); } m_writer.HasTitlePage = true; } m_needsToResetTextboxes = false; } m_inHeaderFooter = false; return(result); }
internal void WriteStartItemToStream(RPLWriter rplWriter, bool isHeader, PageContext pageContext, bool native) { if (rplWriter == null) { return; } BinaryWriter binaryWriter = rplWriter.BinaryWriter; if (binaryWriter != null) { Stream baseStream = binaryWriter.BaseStream; m_offset = baseStream.Position; bool flag = false; if (pageContext.VersionPicker == RPLVersionEnum.RPL2008 || pageContext.VersionPicker == RPLVersionEnum.RPL2008WithImageConsolidation) { if (native) { if (isHeader) { binaryWriter.Write((byte)4); } else { binaryWriter.Write((byte)5); } } else { binaryWriter.Write((byte)10); flag = true; } } else if (isHeader) { binaryWriter.Write((byte)4); } else { binaryWriter.Write((byte)5); } binaryWriter.Write((byte)15); binaryWriter.Write((byte)0); binaryWriter.Write((byte)1); binaryWriter.Write(SourceID); if (!flag) { binaryWriter.Write((byte)44); binaryWriter.Write(m_source.PrintOnFirstPage); if (pageContext.VersionPicker != 0 && pageContext.VersionPicker != RPLVersionEnum.RPL2008WithImageConsolidation) { binaryWriter.Write((byte)47); binaryWriter.Write(m_source.PrintBetweenSections); } } Style style = m_source.Style; if (style != null) { WriteSharedStyle(binaryWriter, style, pageContext, 6); binaryWriter.Write(byte.MaxValue); binaryWriter.Write((byte)1); binaryWriter.Write((byte)0); binaryWriter.Write(SourceUniqueName); StyleInstance styleInstance = GetStyleInstance(m_source, null); if (styleInstance != null) { WriteNonSharedStyle(binaryWriter, style, styleInstance, pageContext, 6, null); } } else { binaryWriter.Write(byte.MaxValue); binaryWriter.Write((byte)1); binaryWriter.Write((byte)0); binaryWriter.Write(SourceUniqueName); } binaryWriter.Write(byte.MaxValue); binaryWriter.Write(byte.MaxValue); return; } m_rplElement = new RPLHeaderFooter(); m_rplElement.ElementProps.Definition.ID = SourceID; RPLHeaderFooterPropsDef obj = m_rplElement.ElementProps.Definition as RPLHeaderFooterPropsDef; obj.PrintOnFirstPage = m_source.PrintOnFirstPage; obj.PrintBetweenSections = m_source.PrintBetweenSections; m_rplElement.ElementProps.UniqueName = SourceUniqueName; Style style2 = m_source.Style; if (style2 != null) { m_rplElement.ElementProps.Definition.SharedStyle = WriteSharedStyle(style2, pageContext); StyleInstance styleInstance2 = GetStyleInstance(m_source, null); if (styleInstance2 != null) { m_rplElement.ElementProps.NonSharedStyle = WriteNonSharedStyle(style2, styleInstance2, pageContext, null); } } }
internal override bool Render() { RPLItemMeasurement rPLItemMeasurement = null; bool flag = true; string author = ""; string title = ""; string description = ""; AutoFit autoFit = m_writer.AutoFit; float width = 0f; float leftMargin = 0f; float rightMargin = 0f; RPLPageLayout rplPageLayout = null; bool flag2 = false; List <RPLReport> rplReportCache = new List <RPLReport>(); while (!m_spbProcessing.Done) { if (!flag) { m_writer.WritePageBreak(); } m_spbProcessing.GetNextPage(out m_rplReport); RPLPageContent rPLPageContent = m_rplReport.RPLPaginatedPages[0]; RPLReportSection rPLReportSection = rPLPageContent.GetNextReportSection(); bool pageCached = false; bool firstSection = true; while (rPLReportSection != null) { rPLItemMeasurement = rPLReportSection.Columns[0]; float width2 = rPLReportSection.BodyArea.Width; RPLHeaderFooter footer = null; SectionEntry sectionEntry = null; if (!firstSection || m_sections.Count == 0 || string.CompareOrdinal(m_sections[m_sections.Count - 1].SectionId, rPLReportSection.ID) != 0) { if (RSTrace.RenderingTracer.TraceVerbose) { RSTrace.RenderingTracer.Trace("The left or right margin is either <0 or the sum exceeds the page width."); } sectionEntry = new SectionEntry(rPLReportSection); if (rPLReportSection.Footer != null) { footer = (rPLReportSection.Footer.Element as RPLHeaderFooter); } if (sectionEntry.HeaderMeasurement != null || sectionEntry.FooterMeasurement != null) { flag2 = true; } m_sections.Add(sectionEntry); CachePage(ref pageCached, rplReportCache); } flag = SetFirstPageDimensions(flag, rPLPageContent, ref rplPageLayout, ref leftMargin, ref rightMargin, ref width, ref title, ref author, ref description); width = RevisePageDimensions(leftMargin, rightMargin, width, width2, autoFit); RenderHeaderBetweenSections(rPLReportSection, firstSection); RenderBodyContent(width2, rPLItemMeasurement); rPLReportSection = AdvanceToNextSection(rPLPageContent, rPLReportSection, ref firstSection, m_sections[m_sections.Count - 1], footer, sectionEntry); } if (!m_spbProcessing.Done && !pageCached) { m_rplReport.Release(); } } m_writer.WriteParagraphEnd(); m_writer.SetPageDimensions(m_pageHeight, width, leftMargin, rightMargin, rplPageLayout.MarginTop, rplPageLayout.MarginBottom); if (flag2) { m_inHeaderFooter = true; m_writer.InitHeaderFooter(); bool flag3 = false; m_needsToResetTextboxes = true; for (int i = 0; i < m_sections.Count; i++) { RPLItemMeasurement headerMeasurement = m_sections[i].HeaderMeasurement; if (headerMeasurement != null) { RenderRectangle((RPLContainer)headerMeasurement.Element, 0f, canGrow: true, headerMeasurement, new BorderContext(), inTablix: false, ignoreStyles: true); } m_writer.FinishHeader(i); RPLItemMeasurement footerMeasurement = m_sections[i].FooterMeasurement; if (footerMeasurement != null) { RenderRectangle((RPLContainer)footerMeasurement.Element, 0f, canGrow: true, footerMeasurement, new BorderContext(), inTablix: false, ignoreStyles: true); } m_writer.FinishFooter(i); if (i != 0) { continue; } bool flag4 = headerMeasurement != null; bool flag5 = flag4 && !(headerMeasurement.Element.ElementPropsDef as RPLHeaderFooterPropsDef).PrintOnFirstPage; bool flag6 = footerMeasurement != null; bool flag7 = flag6 && !(footerMeasurement.Element.ElementPropsDef as RPLHeaderFooterPropsDef).PrintOnFirstPage; flag3 = ((flag5 || flag7) && (flag4 || flag6)); if (flag3) { if (flag4 && !flag5) { RenderRectangle((RPLContainer)headerMeasurement.Element, 0f, canGrow: true, headerMeasurement, new BorderContext(), inTablix: false, ignoreStyles: true); } m_writer.FinishHeader(i, Word97Writer.HeaderFooterLocation.First); if (flag6 && !flag7) { RenderRectangle((RPLContainer)footerMeasurement.Element, 0f, canGrow: true, footerMeasurement, new BorderContext(), inTablix: false, ignoreStyles: true); } m_writer.FinishFooter(i, Word97Writer.HeaderFooterLocation.First); } m_needsToResetTextboxes = false; } m_writer.FinishHeadersFooters(flag3); m_inHeaderFooter = false; } FinishRendering(rplReportCache, title, author, description); return(true); }
public override bool Render() { RPLItemMeasurement rPLItemMeasurement = null; bool flag = true; string author = ""; string title = ""; string description = ""; AutoFit autoFit = base.m_writer.AutoFit; float num = 0f; float leftMargin = 0f; float rightMargin = 0f; RPLPageLayout rPLPageLayout = null; bool flag2 = false; List <RPLReport> rplReportCache = new List <RPLReport>(); while (!base.m_spbProcessing.Done) { if (!flag) { base.m_writer.WritePageBreak(); } base.m_spbProcessing.GetNextPage(out base.m_rplReport); RPLPageContent rPLPageContent = base.m_rplReport.RPLPaginatedPages[0]; RPLReportSection rPLReportSection = rPLPageContent.GetNextReportSection(); bool flag3 = false; bool flag4 = true; while (rPLReportSection != null) { rPLItemMeasurement = rPLReportSection.Columns[0]; float width = rPLReportSection.BodyArea.Width; RPLHeaderFooter footer = null; SectionEntry sectionEntry = null; if (!flag4 || this.m_sections.Count == 0 || string.CompareOrdinal(this.m_sections[this.m_sections.Count - 1].SectionId, rPLReportSection.ID) != 0) { if (RSTrace.RenderingTracer.TraceVerbose) { RSTrace.RenderingTracer.Trace("The left or right margin is either <0 or the sum exceeds the page width."); } sectionEntry = new SectionEntry(rPLReportSection); if (rPLReportSection.Footer != null) { footer = (rPLReportSection.Footer.Element as RPLHeaderFooter); } if (sectionEntry.HeaderMeasurement != null || sectionEntry.FooterMeasurement != null) { flag2 = true; } this.m_sections.Add(sectionEntry); base.CachePage(ref flag3, rplReportCache); } flag = base.SetFirstPageDimensions(flag, rPLPageContent, ref rPLPageLayout, ref leftMargin, ref rightMargin, ref num, ref title, ref author, ref description); num = base.RevisePageDimensions(leftMargin, rightMargin, num, width, autoFit); base.RenderHeaderBetweenSections(rPLReportSection, flag4); base.RenderBodyContent(width, rPLItemMeasurement); rPLReportSection = base.AdvanceToNextSection(rPLPageContent, rPLReportSection, ref flag4, this.m_sections[this.m_sections.Count - 1], footer, sectionEntry); } if (!base.m_spbProcessing.Done && !flag3) { base.m_rplReport.Release(); } } base.m_writer.WriteParagraphEnd(); base.m_writer.SetPageDimensions(base.m_pageHeight, num, leftMargin, rightMargin, rPLPageLayout.MarginTop, rPLPageLayout.MarginBottom); if (flag2) { base.m_inHeaderFooter = true; base.m_writer.InitHeaderFooter(); bool flag5 = false; base.m_needsToResetTextboxes = true; for (int i = 0; i < this.m_sections.Count; i++) { RPLItemMeasurement headerMeasurement = this.m_sections[i].HeaderMeasurement; if (headerMeasurement != null) { base.RenderRectangle((RPLContainer)headerMeasurement.Element, 0f, true, headerMeasurement, new BorderContext(), false, true); } base.m_writer.FinishHeader(i); RPLItemMeasurement footerMeasurement = this.m_sections[i].FooterMeasurement; if (footerMeasurement != null) { base.RenderRectangle((RPLContainer)footerMeasurement.Element, 0f, true, footerMeasurement, new BorderContext(), false, true); } base.m_writer.FinishFooter(i); if (i == 0) { bool flag6 = headerMeasurement != null; bool flag7 = flag6 && !(headerMeasurement.Element.ElementPropsDef as RPLHeaderFooterPropsDef).PrintOnFirstPage; bool flag8 = footerMeasurement != null; bool flag9 = flag8 && !(footerMeasurement.Element.ElementPropsDef as RPLHeaderFooterPropsDef).PrintOnFirstPage; flag5 = ((flag7 || flag9) && (flag6 || flag8)); if (flag5) { if (flag6 && !flag7) { base.RenderRectangle((RPLContainer)headerMeasurement.Element, 0f, true, headerMeasurement, new BorderContext(), false, true); } base.m_writer.FinishHeader(i, Word97Writer.HeaderFooterLocation.First); if (flag8 && !flag9) { base.RenderRectangle((RPLContainer)footerMeasurement.Element, 0f, true, footerMeasurement, new BorderContext(), false, true); } base.m_writer.FinishFooter(i, Word97Writer.HeaderFooterLocation.First); } base.m_needsToResetTextboxes = false; } } base.m_writer.FinishHeadersFooters(flag5); base.m_inHeaderFooter = false; } base.FinishRendering(rplReportCache, title, author, description); return(true); }