public override void WriteCustomSharedItemProps(RPLElementPropsDef sharedProps, PageContext pageContext) { AspNetCore.ReportingServices.OnDemandReportRendering.SubReport subReport = (AspNetCore.ReportingServices.OnDemandReportRendering.SubReport)base.m_source; if (subReport.ReportName != null) { ((RPLSubReportPropsDef)sharedProps).ReportName = subReport.ReportName; } }
public static ReportItem CreateItem(IReportScope reportScope, IDefinitionPath parentDefinitionPath, int indexIntoParentCollectionDef, AspNetCore.ReportingServices.ReportIntermediateFormat.ReportItem reportItemDef, RenderingContext renderingContext) { ReportItem reportItem = null; switch (reportItemDef.ObjectType) { case ObjectType.Textbox: reportItem = new TextBox(reportScope, parentDefinitionPath, indexIntoParentCollectionDef, (AspNetCore.ReportingServices.ReportIntermediateFormat.TextBox)reportItemDef, renderingContext); break; case ObjectType.Rectangle: reportItem = new Rectangle(reportScope, parentDefinitionPath, indexIntoParentCollectionDef, (AspNetCore.ReportingServices.ReportIntermediateFormat.Rectangle)reportItemDef, renderingContext); break; case ObjectType.Image: reportItem = new Image(reportScope, parentDefinitionPath, indexIntoParentCollectionDef, (AspNetCore.ReportingServices.ReportIntermediateFormat.Image)reportItemDef, renderingContext); break; case ObjectType.Line: reportItem = new Line(reportScope, parentDefinitionPath, indexIntoParentCollectionDef, (AspNetCore.ReportingServices.ReportIntermediateFormat.Line)reportItemDef, renderingContext); break; case ObjectType.Subreport: reportItem = new SubReport(reportScope, parentDefinitionPath, indexIntoParentCollectionDef, (AspNetCore.ReportingServices.ReportIntermediateFormat.SubReport)reportItemDef, renderingContext); break; case ObjectType.Tablix: reportItem = new Tablix(parentDefinitionPath, indexIntoParentCollectionDef, (AspNetCore.ReportingServices.ReportIntermediateFormat.Tablix)reportItemDef, renderingContext); break; case ObjectType.Chart: reportItem = new Chart(parentDefinitionPath, indexIntoParentCollectionDef, (AspNetCore.ReportingServices.ReportIntermediateFormat.Chart)reportItemDef, renderingContext); break; case ObjectType.GaugePanel: reportItem = new GaugePanel(parentDefinitionPath, indexIntoParentCollectionDef, (AspNetCore.ReportingServices.ReportIntermediateFormat.GaugePanel)reportItemDef, renderingContext); break; case ObjectType.CustomReportItem: { AspNetCore.ReportingServices.ReportIntermediateFormat.CustomReportItem customReportItem = (AspNetCore.ReportingServices.ReportIntermediateFormat.CustomReportItem)reportItemDef; reportItem = new CustomReportItem(reportScope, parentDefinitionPath, indexIntoParentCollectionDef, customReportItem, renderingContext); if (!((CustomReportItem)reportItem).Initialize(renderingContext)) { reportItem = ReportItem.CreateItem(reportScope, parentDefinitionPath, customReportItem.AltReportItemIndexInParentCollectionDef, customReportItem.AltReportItem, renderingContext); reportItem.ReportItemDef.RepeatedSibling = customReportItem.RepeatedSibling; reportItem.ReportItemDef.RepeatWith = customReportItem.RepeatWith; ReportItem.ProcessAlternateCustomReportItem(customReportItem, reportItem, renderingContext); } break; } case ObjectType.Map: reportItem = new Map(reportScope, parentDefinitionPath, indexIntoParentCollectionDef, (AspNetCore.ReportingServices.ReportIntermediateFormat.Map)reportItemDef, renderingContext); break; } return(reportItem); }
public override void WriteCustomSharedItemProps(BinaryWriter spbifWriter, RPLWriter rplWriter, PageContext pageContext) { AspNetCore.ReportingServices.OnDemandReportRendering.SubReport subReport = (AspNetCore.ReportingServices.OnDemandReportRendering.SubReport)base.m_source; if (subReport.ReportName != null) { spbifWriter.Write((byte)15); spbifWriter.Write(subReport.ReportName); } }
public SubReport(AspNetCore.ReportingServices.OnDemandReportRendering.SubReport source) : base(source) { base.m_itemPageSizes = new ItemSizes(source); bool keepTogetherVertical = base.UnresolvedKTV = source.KeepTogether; base.KeepTogetherVertical = keepTogetherVertical; bool keepTogetherHorizontal = base.UnresolvedKTH = source.KeepTogether; base.KeepTogetherHorizontal = keepTogetherHorizontal; }
public void UpdateSubReportContents(SubReport subReport, AspNetCore.ReportingServices.ReportRendering.SubReport renderSubreport) { if (renderSubreport != null) { this.m_renderReport = renderSubreport.Report; } if (this.m_reportSections != null) { ((ReportElementCollectionBase <ReportSection>) this.m_reportSections)[0].UpdateSubReportContents(this.m_renderReport); } if (this.m_parameters != null) { this.m_parameters.UpdateRenderReportItem(this.m_renderReport.Parameters); } }
private void VisitSubReport(AspNetCore.ReportingServices.OnDemandReportRendering.SubReport subreportDef) { if (subreportDef.Report != null && subreportDef.Instance != null && !subreportDef.ProcessedWithError) { AspNetCore.ReportingServices.OnDemandReportRendering.Report report = subreportDef.Report; if (!report.HasDocumentMap && !this.m_createSnapshot) { return; } foreach (AspNetCore.ReportingServices.OnDemandReportRendering.ReportSection reportSection in report.ReportSections) { this.Visit(reportSection.Body.ReportItemCollection); this.VisitStyle(reportSection.Body.Style); } } }
public static ReportItem CreateShim(IDefinitionPath parentDefinitionPath, int indexIntoParentCollectionDef, bool inSubtotal, AspNetCore.ReportingServices.ReportRendering.ReportItem renderReportItem, RenderingContext renderingContext) { ReportItem result = null; if (renderReportItem is AspNetCore.ReportingServices.ReportRendering.TextBox) { result = new TextBox(parentDefinitionPath, indexIntoParentCollectionDef, inSubtotal, (AspNetCore.ReportingServices.ReportRendering.TextBox)renderReportItem, renderingContext); } else if (renderReportItem is AspNetCore.ReportingServices.ReportRendering.Rectangle) { result = new Rectangle(parentDefinitionPath, indexIntoParentCollectionDef, inSubtotal, (AspNetCore.ReportingServices.ReportRendering.Rectangle)renderReportItem, renderingContext); } else if (renderReportItem is AspNetCore.ReportingServices.ReportRendering.Image) { result = new Image(parentDefinitionPath, indexIntoParentCollectionDef, inSubtotal, (AspNetCore.ReportingServices.ReportRendering.Image)renderReportItem, renderingContext); } else if (renderReportItem is AspNetCore.ReportingServices.ReportRendering.List) { result = new Tablix(parentDefinitionPath, indexIntoParentCollectionDef, inSubtotal, (AspNetCore.ReportingServices.ReportRendering.List)renderReportItem, renderingContext); } else if (renderReportItem is AspNetCore.ReportingServices.ReportRendering.Table) { result = new Tablix(parentDefinitionPath, indexIntoParentCollectionDef, inSubtotal, (AspNetCore.ReportingServices.ReportRendering.Table)renderReportItem, renderingContext); } else if (renderReportItem is AspNetCore.ReportingServices.ReportRendering.Matrix) { result = new Tablix(parentDefinitionPath, indexIntoParentCollectionDef, inSubtotal, (AspNetCore.ReportingServices.ReportRendering.Matrix)renderReportItem, renderingContext); } else if (renderReportItem is AspNetCore.ReportingServices.ReportRendering.Chart) { result = new Chart(parentDefinitionPath, indexIntoParentCollectionDef, inSubtotal, (AspNetCore.ReportingServices.ReportRendering.Chart)renderReportItem, renderingContext); } else if (renderReportItem is AspNetCore.ReportingServices.ReportRendering.CustomReportItem) { result = new CustomReportItem(parentDefinitionPath, indexIntoParentCollectionDef, inSubtotal, (AspNetCore.ReportingServices.ReportRendering.CustomReportItem)renderReportItem, renderingContext); } else if (renderReportItem is AspNetCore.ReportingServices.ReportRendering.SubReport) { result = new SubReport(parentDefinitionPath, indexIntoParentCollectionDef, inSubtotal, (AspNetCore.ReportingServices.ReportRendering.SubReport)renderReportItem, renderingContext); } else if (renderReportItem is AspNetCore.ReportingServices.ReportRendering.Line) { result = new Line(parentDefinitionPath, indexIntoParentCollectionDef, inSubtotal, (AspNetCore.ReportingServices.ReportRendering.Line)renderReportItem, renderingContext); } return(result); }
private void CreateChildren(PageContext pageContext, PageItemHelper lastPageInfo, bool needsFirstBodyUpdate) { AspNetCore.ReportingServices.OnDemandReportRendering.SubReport subReport = (AspNetCore.ReportingServices.OnDemandReportRendering.SubReport)base.m_source; ReportSectionCollection reportSections = subReport.Report.ReportSections; if (this.m_childrenBody == null) { this.m_childrenBody = new PageItem[reportSections.Count]; for (int i = this.m_bodyIndex; i < reportSections.Count; i++) { this.m_childrenBody[i] = new ReportBody(((ReportElementCollectionBase <AspNetCore.ReportingServices.OnDemandReportRendering.ReportSection>)subReport.Report.ReportSections)[i].Body, ((ReportElementCollectionBase <AspNetCore.ReportingServices.OnDemandReportRendering.ReportSection>)subReport.Report.ReportSections)[i].Width, pageContext); } } if (needsFirstBodyUpdate) { this.m_childrenBody[this.m_bodyIndex].UpdateItem(lastPageInfo.ChildPage); this.UpdateItemPageState(subReport.OmitBorderOnPageBreak); } }
public SubReport(AspNetCore.ReportingServices.OnDemandReportRendering.SubReport source, PageContext pageContext, bool createForRepeat) : base(source) { if (pageContext != null) { if (createForRepeat) { base.m_itemPageSizes = pageContext.GetSharedFromRepeatItemSizesElement(source, false); } else { base.m_itemPageSizes = pageContext.GetSharedItemSizesElement(source, false); } } else { base.m_itemPageSizes = new ItemSizes(source); } }
public override bool CalculatePage(RPLWriter rplWriter, PageItemHelper lastPageInfo, PageContext pageContext, PageItem[] siblings, RepeatWithItem[] repeatWithItems, double parentTopInPage, ref double parentPageHeight, Interactivity interactivity) { base.AdjustOriginFromItemsAbove(siblings, repeatWithItems); if (!this.HitsCurrentPage(pageContext, parentTopInPage)) { return(false); } bool flag = false; bool flag2 = false; this.CalculateIndexOfFirstBodyOnPage(lastPageInfo, out flag, out flag2); ItemSizes itemSizes = null; if (flag && base.ResolveItemHiddenState(rplWriter, interactivity, pageContext, false, ref itemSizes)) { parentPageHeight = Math.Max(parentPageHeight, base.m_itemPageSizes.Bottom); if (rplWriter != null && base.m_itemRenderSizes == null) { this.CreateItemRenderSizes(null, pageContext, false); } return(true); } this.WriteStartItemToStream(rplWriter, pageContext); this.CreateChildren(pageContext, lastPageInfo, flag2); AspNetCore.ReportingServices.OnDemandReportRendering.SubReport subReport = (AspNetCore.ReportingServices.OnDemandReportRendering.SubReport)base.m_source; PageContext pageContext2 = pageContext; if (!pageContext2.FullOnPage) { if (base.IgnorePageBreaks) { pageContext2 = new PageContext(pageContext, PageContext.PageContextFlags.FullOnPage, PageContext.IgnorePBReasonFlag.Toggled); } else if (flag && subReport.KeepTogether && !pageContext2.KeepTogether) { pageContext2 = new PageContext(pageContext); pageContext2.KeepTogether = true; } } this.m_bodiesOnPage = 0; double num = parentTopInPage + base.m_itemPageSizes.Top; double num2 = 0.0; double num3 = 0.0; double num4 = 0.0; bool flag3 = false; for (int i = this.m_bodyIndex; i < this.m_childrenBody.Length; i++) { if (flag3) { break; } PageItem pageItem = this.m_childrenBody[i]; double num5 = 0.0; if (flag2) { pageItem.CalculatePage(rplWriter, lastPageInfo.ChildPage, pageContext2, null, null, num, ref num5, interactivity); flag2 = false; } else { pageItem.CalculatePage(rplWriter, null, pageContext2, null, null, num, ref num5, interactivity); } if (pageContext2.CancelPage) { base.m_itemState = State.Below; base.m_rplElement = null; this.m_childrenBody = null; return(false); } if (pageItem.ItemState == State.TopNextPage && i == 0) { base.m_itemState = State.TopNextPage; this.m_bodyIndex = -1; return(false); } this.m_bodiesOnPage++; num += num5; num2 += num5; base.m_itemState = State.OnPage; if (!pageContext2.FullOnPage) { this.m_prevPageEnd = num2; if (pageItem.ItemState != State.OnPage) { if (pageItem.ItemState == State.OnPagePBEnd && i == this.m_childrenBody.Length - 1) { base.m_itemState = State.OnPagePBEnd; } else { if (pageItem.ItemState == State.Below) { this.m_bodiesOnPage--; } base.m_itemState = State.SpanPages; this.m_prevPageEnd = 0.0; } } if (base.m_itemState == State.SpanPages || base.m_itemState == State.OnPagePBEnd) { flag3 = true; } else if ((RoundedDouble)num >= pageContext2.PageHeight) { flag3 = true; if (base.m_itemState == State.OnPage && i < this.m_childrenBody.Length - 1) { base.m_itemState = State.SpanPages; } } } if (rplWriter != null) { num3 = Math.Max(num3, pageItem.ItemRenderSizes.Width); num4 += pageItem.ItemRenderSizes.Height; } } if (itemSizes == null) { base.m_itemPageSizes.AdjustHeightTo(this.m_childrenBody[this.m_bodyIndex + this.m_bodiesOnPage - 1].ItemPageSizes.Bottom); } else { itemSizes.AdjustHeightTo(this.m_childrenBody[this.m_bodyIndex + this.m_bodiesOnPage - 1].ItemPageSizes.Bottom); } if (rplWriter != null) { this.CreateItemRenderSizes(itemSizes, pageContext2, false); base.m_itemRenderSizes.AdjustWidthTo(num3); base.m_itemRenderSizes.AdjustHeightTo(num4); this.WriteEndItemToStream(rplWriter, pageContext2); } if (base.m_itemState != State.SpanPages) { parentPageHeight = Math.Max(parentPageHeight, base.m_itemPageSizes.Bottom); } else { if (subReport.OmitBorderOnPageBreak) { base.m_rplItemState |= 2; } parentPageHeight = Math.Max(parentPageHeight, base.m_itemPageSizes.Top + num2); } this.ReleaseBodyChildrenOnPage(); this.m_bodyIndex += this.m_bodiesOnPage - 1; return(true); }
public static void RegisterHiddenItem(ReportItem reportItem, PageContext pageContext, bool useForPageHFEval, Interactivity interactivity) { if (reportItem != null) { bool flag = false; bool flag2 = false; if (useForPageHFEval) { flag = HeaderFooterEval.AddToCurrentPage(reportItem); } if (interactivity != null && !interactivity.RegisterHiddenItem(reportItem, pageContext)) { interactivity = null; } if (!flag && interactivity == null) { return; } if (reportItem is AspNetCore.ReportingServices.OnDemandReportRendering.TextBox) { if (flag) { AspNetCore.ReportingServices.OnDemandReportRendering.TextBox textBox = reportItem as AspNetCore.ReportingServices.OnDemandReportRendering.TextBox; if (textBox != null) { ((TextBoxInstance)textBox.Instance).AddToCurrentPage(); } } } else if (reportItem is AspNetCore.ReportingServices.OnDemandReportRendering.Rectangle) { RegisterItem.RegisterHiddenItem(((AspNetCore.ReportingServices.OnDemandReportRendering.Rectangle)reportItem).ReportItemCollection, pageContext, flag, interactivity); } else if (reportItem is AspNetCore.ReportingServices.OnDemandReportRendering.SubReport) { if (interactivity != null) { AspNetCore.ReportingServices.OnDemandReportRendering.SubReport subReport = (AspNetCore.ReportingServices.OnDemandReportRendering.SubReport)reportItem; SubReportInstance subReportInstance = (SubReportInstance)subReport.Instance; if (!subReportInstance.ProcessedWithError && !subReportInstance.NoRows) { for (int i = 0; i < subReport.Report.ReportSections.Count; i++) { RegisterItem.RegisterHiddenItem(((ReportElementCollectionBase <AspNetCore.ReportingServices.OnDemandReportRendering.ReportSection>)subReport.Report.ReportSections)[i].Body.ReportItemCollection, pageContext, false, interactivity); } } } } else if (reportItem is AspNetCore.ReportingServices.OnDemandReportRendering.Tablix) { RegisterItem.RegisterHiddenItem((AspNetCore.ReportingServices.OnDemandReportRendering.Tablix)reportItem, pageContext, flag, interactivity); } } }
private static ReportItem FindReportItem(AspNetCore.ReportingServices.OnDemandReportRendering.Report report, IEnumerable <string> reportItemPathSteps, out AspNetCore.ReportingServices.OnDemandReportRendering.ReportSection reportSection) { reportSection = null; int num = reportItemPathSteps.Count(); if (num == 0) { return(null); } bool flag = num > 1; string text = reportItemPathSteps.FirstOrDefault(); ReportItem reportItem = null; foreach (AspNetCore.ReportingServices.OnDemandReportRendering.ReportSection reportSection2 in report.ReportSections) { foreach (ReportItem item in reportSection2.Body.ReportItemCollection) { if (flag) { AspNetCore.ReportingServices.OnDemandReportRendering.SubReport subReport = item as AspNetCore.ReportingServices.OnDemandReportRendering.SubReport; if (subReport != null && subReport.Report != null && string.CompareOrdinal(item.Name, text) == 0) { reportItem = SelectiveRendering.FindReportItem(subReport.Report, reportItemPathSteps.Skip(1), out reportSection); } } else { AspNetCore.ReportingServices.OnDemandReportRendering.Rectangle rectangle = item as AspNetCore.ReportingServices.OnDemandReportRendering.Rectangle; if (rectangle != null) { reportItem = SelectiveRendering.FindReportItem(rectangle, text); } else if (string.CompareOrdinal(item.Name, text) == 0) { reportItem = item; } } if (reportItem != null) { reportSection = reportSection2; return(reportItem); } } } return(null); }
public SubReportInstance(SubReport reportItemDef) : base(reportItemDef) { }