コード例 #1
0
 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;
     }
 }
コード例 #2
0
        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);
        }
コード例 #3
0
 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);
     }
 }
コード例 #4
0
        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;
        }
コード例 #5
0
 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);
     }
 }
コード例 #6
0
 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);
         }
     }
 }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
            }
        }
コード例 #9
0
 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);
     }
 }
コード例 #10
0
        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);
        }
コード例 #11
0
 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);
         }
     }
 }
コード例 #12
0
        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);
        }
コード例 #13
0
 public SubReportInstance(SubReport reportItemDef)
     : base(reportItemDef)
 {
 }