internal void WriteEndItemToStream(RPLWriter rplWriter, List <ReportSection> sectionsOnPage) { BinaryWriter binaryWriter = rplWriter.BinaryWriter; if (binaryWriter != null) { rplWriter.BinaryWriter.Write(byte.MaxValue); Stream baseStream = binaryWriter.BaseStream; long position = baseStream.Position; binaryWriter.Write((byte)16); binaryWriter.Write(m_pageOffset); int count = sectionsOnPage.Count; binaryWriter.Write(count); for (int i = 0; i < count; i++) { sectionsOnPage[i].WriteMeasurement(binaryWriter); } m_pageOffset = baseStream.Position; binaryWriter.Write((byte)254); binaryWriter.Write(position); binaryWriter.Write(byte.MaxValue); position = baseStream.Position; binaryWriter.Write((byte)18); binaryWriter.Write(m_offset); binaryWriter.Write(1); binaryWriter.Write(m_pageOffset); binaryWriter.Write((byte)254); binaryWriter.Write(position); binaryWriter.Write(byte.MaxValue); } else { int count2 = sectionsOnPage.Count; RPLPageLayout pageLayout = sectionsOnPage[0].WritePageLayout(rplWriter, m_pageContext); RPLPageContent rPLPageContent = new RPLPageContent(count2, pageLayout); for (int j = 0; j < count2; j++) { RPLMeasurement measurement = null; sectionsOnPage[j].AddToPage(rPLPageContent, out measurement); rPLPageContent.ReportSectionSizes[j] = measurement; } rplWriter.Report.RPLPaginatedPages[0] = rPLPageContent; } }
internal void WriteItemStyle(RPLWriter rplWriter, PageContext pageContext) { if (rplWriter == null) { return; } Style style = m_source.Style; if (style == null) { return; } BinaryWriter binaryWriter = rplWriter.BinaryWriter; if (binaryWriter != null) { WriteSharedStyle(binaryWriter, style, pageContext); StyleInstance style2 = m_source.Instance.Style; if (style2 != null) { WriteNonSharedStyleWithoutTag(binaryWriter, style, style2, pageContext); } binaryWriter.Write(byte.MaxValue); return; } RPLPageLayout pageLayout = m_pageLayout; if (pageLayout != null) { RPLStyleProps rPLStyleProps = WriteSharedStyle(style, pageContext); RPLStyleProps rPLStyleProps2 = null; StyleInstance style3 = m_source.Instance.Style; if (style3 != null) { rPLStyleProps2 = WriteNonSharedStyle(style, style3, pageContext); } if (rPLStyleProps != null || rPLStyleProps2 != null) { pageLayout.Style = new RPLElementStyle(rPLStyleProps2, rPLStyleProps); } } }
internal override void WriteCustomSharedItemProps(BinaryWriter spbifWriter, RPLWriter rplWriter, PageContext pageContext) { switch (((Microsoft.ReportingServices.OnDemandReportRendering.Image)m_source).Sizing) { case Microsoft.ReportingServices.OnDemandReportRendering.Image.Sizings.Clip: spbifWriter.Write((byte)41); spbifWriter.Write((byte)3); break; case Microsoft.ReportingServices.OnDemandReportRendering.Image.Sizings.Fit: spbifWriter.Write((byte)41); spbifWriter.Write((byte)1); break; case Microsoft.ReportingServices.OnDemandReportRendering.Image.Sizings.FitProportional: spbifWriter.Write((byte)41); spbifWriter.Write((byte)2); break; } }
internal override void RegisterTextBoxes(RPLWriter rplWriter, PageContext pageContext) { if (rplWriter == null || m_textBoxValues == null || pageContext.Common.InSubReport) { return; } if (rplWriter.DelayedTBLevels == 0) { foreach (string key in m_textBoxValues.Keys) { foreach (object item in m_textBoxValues[key]) { pageContext.AddTextBox(key, item); } } } else { rplWriter.AddTextBoxes(m_textBoxValues); } }
internal override void WriteStartItemToStream(RPLWriter rplWriter, PageContext pageContext) { if (rplWriter != null) { BinaryWriter binaryWriter = rplWriter.BinaryWriter; if (binaryWriter != null) { long position = binaryWriter.BaseStream.Position; binaryWriter.Write((byte)8); WriteElementProps(binaryWriter, rplWriter, pageContext, position + 1); m_offset = binaryWriter.BaseStream.Position; binaryWriter.Write((byte)254); binaryWriter.Write(position); binaryWriter.Write(byte.MaxValue); } else if (m_rplElement == null) { m_rplElement = new RPLLine(); WriteElementProps(m_rplElement.ElementProps, pageContext); } } }
internal override void WriteStartItemToStream(RPLWriter rplWriter, PageContext pageContext) { if (rplWriter != null) { BinaryWriter binaryWriter = rplWriter.BinaryWriter; if (binaryWriter != null) { Stream baseStream = binaryWriter.BaseStream; m_offset = baseStream.Position; binaryWriter.Write(RPLFormatType); WriteElementProps(binaryWriter, rplWriter, pageContext, m_offset + 1); } else if (m_rplElement == null) { m_rplElement = CreateRPLElement(); WriteElementProps(m_rplElement.ElementProps, pageContext); } else { m_rplElement = CreateRPLElement(m_rplElement.ElementProps, pageContext); } } }
internal void WriteColumns(RPLWriter rplWriter) { if (rplWriter == null) { return; } BinaryWriter binaryWriter = rplWriter.BinaryWriter; if (binaryWriter != null) { Stream baseStream = binaryWriter.BaseStream; long position = baseStream.Position; binaryWriter.Write((byte)16); binaryWriter.Write(m_columnsOffset); binaryWriter.Write(m_columns.Count); foreach (ColumnDetail column in m_columns) { column.WriteMeasurement(binaryWriter); } m_columnsOffset = baseStream.Position; binaryWriter.Write((byte)254); binaryWriter.Write(position); binaryWriter.Write(byte.MaxValue); } else { RPLReportSection rPLReportSection = new RPLReportSection(m_columns.Count); rPLReportSection.ID = m_reportSection.ID; rPLReportSection.ColumnCount = m_sectionPageSettings.Columns; rPLReportSection.ColumnSpacing = (float)m_sectionPageSettings.ColumnSpacing; for (int i = 0; i < m_columns.Count; i++) { rPLReportSection.Columns[i] = m_columns[i].WriteMeasurement(); } m_rplElement = rPLReportSection; } }
internal override void WriteStartItemToStream(RPLWriter rplWriter, PageContext pageContext) { if (rplWriter != null) { BinaryWriter binaryWriter = rplWriter.BinaryWriter; if (binaryWriter != null) { Stream baseStream = binaryWriter.BaseStream; m_offset = baseStream.Position; binaryWriter.Write((byte)12); WriteElementProps(binaryWriter, rplWriter, pageContext, m_offset + 1); } else if (m_rplElement == null) { m_rplElement = new RPLSubReport(); WriteElementProps(m_rplElement.ElementProps, pageContext); } else { RPLItemProps rplElementProps = m_rplElement.ElementProps as RPLItemProps; m_rplElement = new RPLSubReport(rplElementProps); } } }
internal void WriteStartItemToStream(RPLWriter rplWriter) { if (rplWriter != null) { BinaryWriter binaryWriter = rplWriter.BinaryWriter; if (binaryWriter != null) { Stream baseStream = binaryWriter.BaseStream; m_offset = baseStream.Position; m_pageOffset = baseStream.Position; binaryWriter.Write((byte)21); binaryWriter.Write((byte)22); binaryWriter.Write((byte)0); binaryWriter.Write(m_reportSection.ID); binaryWriter.Write((byte)1); binaryWriter.Write(m_sectionPageSettings.Columns); binaryWriter.Write((byte)2); binaryWriter.Write((float)m_sectionPageSettings.ColumnSpacing); binaryWriter.Write(byte.MaxValue); m_columnsOffset = baseStream.Position; binaryWriter.Write((byte)20); } } }
internal override void WriteStartItemToStream(RPLWriter rplWriter, PageContext pageContext) { }
internal void WriteStartItemToStream(RPLWriter rplWriter) { if (rplWriter == null) { return; } BinaryWriter binaryWriter = rplWriter.BinaryWriter; string reportLanguage = GetReportLanguage(m_report); if (binaryWriter != null) { Stream baseStream = binaryWriter.BaseStream; m_offset = baseStream.Position; binaryWriter.Write((byte)0); binaryWriter.Write((byte)2); if (m_report.Name != null) { binaryWriter.Write((byte)15); binaryWriter.Write(m_report.Name); } if (m_report.Description != null) { binaryWriter.Write((byte)9); binaryWriter.Write(m_report.Description); } if (m_report.Author != null) { binaryWriter.Write((byte)13); binaryWriter.Write(m_report.Author); } if (m_report.AutoRefresh > 0) { binaryWriter.Write((byte)14); binaryWriter.Write(m_report.AutoRefresh); } DateTime executionTime = m_report.ExecutionTime; binaryWriter.Write((byte)12); binaryWriter.Write(executionTime.ToBinary()); ReportUrl location = m_report.Location; if (location != null) { binaryWriter.Write((byte)10); binaryWriter.Write(location.ToString()); } if (reportLanguage != null) { binaryWriter.Write((byte)11); binaryWriter.Write(reportLanguage); } binaryWriter.Write(byte.MaxValue); m_pageOffset = baseStream.Position; binaryWriter.Write((byte)19); binaryWriter.Write((byte)3); binaryWriter.Write((byte)16); binaryWriter.Write((float)m_pageSettings.PhysicalPageHeight); binaryWriter.Write((byte)17); binaryWriter.Write((float)m_pageSettings.PhysicalPageWidth); binaryWriter.Write((byte)20); binaryWriter.Write((float)m_pageSettings.MarginBottom); binaryWriter.Write((byte)19); binaryWriter.Write((float)m_pageSettings.MarginLeft); binaryWriter.Write((byte)21); binaryWriter.Write((float)m_pageSettings.MarginRight); binaryWriter.Write((byte)18); binaryWriter.Write((float)m_pageSettings.MarginTop); new ReportSectionPage(m_report.ReportSections[0].Page).WriteItemStyle(rplWriter, m_pageContext); binaryWriter.Write(byte.MaxValue); } else { RPLReport rPLReport = new RPLReport(); rPLReport.ReportName = m_report.Name; rPLReport.Description = m_report.Description; rPLReport.Author = m_report.Author; rPLReport.AutoRefresh = m_report.AutoRefresh; rPLReport.ExecutionTime = m_report.ExecutionTime; rPLReport.Location = m_report.Location.ToString(); rPLReport.Language = reportLanguage; rPLReport.RPLVersion = m_rplVersion; rPLReport.RPLPaginatedPages = new RPLPageContent[1]; rplWriter.Report = rPLReport; } }
internal void WriteEndItemToStream(RPLWriter rplWriter) { if (rplWriter == null) { return; } PageHeadFoot header = m_header; m_header = null; PageHeadFoot footer = m_footer; m_footer = null; bool needsHeaderHeight = m_needsHeaderHeight; m_needsHeaderHeight = false; BinaryWriter binaryWriter = rplWriter.BinaryWriter; if (binaryWriter != null) { rplWriter.BinaryWriter.Write(byte.MaxValue); Stream baseStream = binaryWriter.BaseStream; long position = baseStream.Position; binaryWriter.Write((byte)16); binaryWriter.Write(m_pageOffset); binaryWriter.Write(1 + ((header != null) ? 1 : 0) + ((footer != null) ? 1 : 0)); binaryWriter.Write((float)m_pageSettings.MarginLeft); if (needsHeaderHeight) { binaryWriter.Write((float)m_sectionPageSettings.HeaderHeight); } else { binaryWriter.Write(0f); } binaryWriter.Write((float)(m_pageSettings.PhysicalPageWidth - m_pageSettings.MarginLeft - m_pageSettings.MarginRight)); binaryWriter.Write((float)m_columnHeight); binaryWriter.Write(0); binaryWriter.Write((byte)0); binaryWriter.Write(m_columnsOffset); header?.WritePageItemSizes(binaryWriter); footer?.WritePageItemSizes(binaryWriter); m_offset = baseStream.Position; binaryWriter.Write((byte)254); binaryWriter.Write(position); binaryWriter.Write(byte.MaxValue); } else { m_rplElement.BodyArea = new RPLMeasurement(); float top = 0f; if (needsHeaderHeight) { top = (float)m_sectionPageSettings.HeaderHeight; } m_rplElement.BodyArea.Top = top; m_rplElement.BodyArea.Height = (float)m_columnHeight; if (header != null) { m_rplElement.Header = header.WritePageItemSizes(); } if (footer != null) { m_rplElement.Footer = footer.WritePageItemSizes(); } } }
internal double NextPage(RPLWriter rplWriter, int pageNumber, int totalPages, double top, double availableHeight, ReportSection nextSection, bool isFirstSectionOnPage) { double num = 0.0; bool flag = nextSection == null; if (!flag) { SectionPaginationSettings sectionPaginationSettings = nextSection.SectionPaginationSettings; num = 2.5399999618530273 + sectionPaginationSettings.FooterHeight; PageSection pageHeader = nextSection.ROMReportSection.Page.PageHeader; if (pageHeader != null && pageHeader.PrintBetweenSections) { num += sectionPaginationSettings.HeaderHeight; } } double num2 = 0.0; PageSection pageHeader2 = m_reportSection.Page.PageHeader; PageSection pageFooter = m_reportSection.Page.PageFooter; bool flag2 = pageHeader2?.PrintBetweenSections ?? false; bool flag3 = pageFooter?.PrintBetweenSections ?? false; m_needsHeaderHeight = (isFirstSectionOnPage ? (pageHeader2 != null) : flag2); if (m_needsHeaderHeight) { num2 += m_sectionPageSettings.HeaderHeight; availableHeight -= num2; } if (pageFooter != null) { availableHeight -= m_sectionPageSettings.FooterHeight; } bool flag4 = false; bool flag5 = false; m_reportSection.SetPage(m_pageContext.PageNumberRegion, m_pageContext.Common.GetTotalPagesRegion(pageNumber), pageNumber, totalPages); bool needsReportItemsOnPage = m_reportSection.NeedsReportItemsOnPage; bool flag6 = m_pageContext.PropertyCacheState != PageContext.CacheState.CountPages; m_pageContext.EvaluatePageHeaderFooter = false; if (needsReportItemsOnPage && flag6) { if ((flag2 && !isFirstSectionOnPage) || HasHeaderOnPage(pageNumber, totalPages)) { flag4 = true; } if (HasFooterOnPage(pageNumber, totalPages) || (flag3 && !flag)) { flag5 = true; } if (flag4 || flag5) { m_pageContext.EvaluatePageHeaderFooter = true; } } if (rplWriter != null) { m_columns = new List <ColumnDetail>(m_sectionPageSettings.Columns); WriteStartItemToStream(rplWriter); } long num3 = 0L; if (!Done) { double columnWidth = m_sectionPageSettings.ColumnWidth; m_pageContext.Common.Pagination.CurrentColumnWidth = columnWidth; m_columnHeight = availableHeight; m_pageContext.Common.Pagination.CurrentColumnHeight = m_columnHeight; int num4 = 0; int columns = m_sectionPageSettings.Columns; RoundedDouble roundedDouble = new RoundedDouble(m_topEdge); RoundedDouble roundedDouble2 = new RoundedDouble(m_leftEdge); m_pageContext.VerticalPageNumber = m_verticalPageNumber; while (num4 < columns) { bool anyAncestorHasKT = false; if (m_leftEdge == 0.0) { if (m_pageContext.TextBoxDuplicates != null) { m_pageContext.TextBoxDuplicates = null; m_reportBody.ResolveDuplicates(m_pageContext, m_topEdge, null, recalculate: false); } m_reportBody.CalculateVertical(m_pageContext, m_topEdge, m_topEdge + availableHeight, null, new List <PageItem>(), ref anyAncestorHasKT, hasUnpinnedAncestors: false); m_verticalPageNumber++; m_pageContext.VerticalPageNumber = m_verticalPageNumber; } anyAncestorHasKT = false; m_reportBody.CalculateHorizontal(m_pageContext, m_leftEdge, m_leftEdge + columnWidth, null, new List <PageItem>(), ref anyAncestorHasKT, hasUnpinnedAncestors: false); num3 = m_pageContext.PropertyCacheWriter.BaseStream.Position; m_reportBody.AddToPage(rplWriter, m_pageContext, m_leftEdge, m_topEdge, m_leftEdge + columnWidth, m_topEdge + availableHeight, PageItem.RepeatState.None); rplWriter?.RegisterSectionItemizedData(); m_pageContext.PropertyCacheWriter.BaseStream.Seek(num3, SeekOrigin.Begin); if (rplWriter != null) { m_columns.Add(new ColumnDetail(0.0 - m_leftEdge, 0.0 - m_topEdge, m_reportBody)); } m_leftEdge += columnWidth; roundedDouble2.Value = m_leftEdge; if (num4 == 0 && m_reportBody.ItemPageSizes.Bottom - m_topEdge < availableHeight) { m_columnHeight = m_reportBody.ItemPageSizes.Bottom - m_topEdge; } if (roundedDouble2 >= m_reportBody.ItemPageSizes.Width) { m_leftEdge = 0.0; m_topEdge += availableHeight; roundedDouble.Value = m_topEdge; m_reportBody.ResetHorizontal(spanPages: true, null); m_pageContext.Common.PaginatingHorizontally = false; } else { m_pageContext.Common.PaginatingHorizontally = true; } num4++; if (roundedDouble >= m_reportBody.ItemPageSizes.Bottom) { m_reportBody = null; m_topEdge = 0.0; m_leftEdge = 0.0; break; } } } double num5 = availableHeight - m_columnHeight; if (Done && !flag && pageFooter != null && !flag3) { num5 += m_sectionPageSettings.FooterHeight; } bool flag7 = false; if (num5 < num || flag) { m_columnHeight = availableHeight; flag7 = true; num2 += m_sectionPageSettings.FooterHeight; } else if (flag3) { num2 += m_sectionPageSettings.FooterHeight; } m_itemPageSizes.Height = num2 + m_columnHeight; m_itemPageSizes.Top = top; WriteColumns(rplWriter); m_columns = null; if (Done && flag && totalPages == 0) { totalPages = pageNumber; } if (flag6) { flag4 = ((!isFirstSectionOnPage) ? flag2 : HasHeaderOnPage(pageNumber, totalPages)); flag5 = ((!flag7) ? flag3 : HasFooterOnPage(pageNumber, totalPages)); } if (flag4 || flag5) { m_pageContext.Common.CheckPageNameChanged(); m_reportSection.SetPageName(m_pageContext.PageName); m_reportSection.GetPageSections(); if (flag4 && !IsHeaderUnknown(isFirstSectionOnPage, pageNumber, totalPages)) { RenderHeader(rplWriter); } else { m_header = null; flag4 = false; } if (flag5) { RenderFooter(rplWriter); } else { m_footer = null; } if (rplWriter != null && (flag4 || flag5)) { rplWriter.RegisterSectionHeaderFooter(); } } if (!IsHeaderUnknown(isFirstSectionOnPage, pageNumber, totalPages)) { WriteEndItemToStream(rplWriter); m_wroteEndToStream = true; } else { m_wroteEndToStream = false; } rplWriter?.RegisterPageItemizedData(); return(m_itemPageSizes.Height); }