Example #1
0
 internal PageSection(IReportScope reportScope, IDefinitionPath parentDefinitionPath, bool isHeader, Microsoft.ReportingServices.ReportIntermediateFormat.PageSection pageSectionDef, RenderingContext renderingContext)
     : base(reportScope, parentDefinitionPath, pageSectionDef, renderingContext)
 {
     m_isHeader = isHeader;
 }
        private void PageInit(ReportSection section)
        {
            ObjectModelImpl reportObjectModel = m_processingContext.ReportObjectModel;
            AggregatesImpl  aggregatesImpl    = reportObjectModel.AggregatesImpl;

            Global.Tracer.Assert(section.BodyItemsForHeadFoot != null, "Missing cached BodyItemsForHeadFoot collection");
            Global.Tracer.Assert(section.PageSectionItemsForHeadFoot != null, "Missing cached PageSectionItemsForHeadFoot collection");
            section.BodyItemsForHeadFoot.ResetAll(default(Microsoft.ReportingServices.RdlExpressions.VariantResult));
            section.PageSectionItemsForHeadFoot.ResetAll();
            reportObjectModel.GlobalsImpl.SetPageNumbers(m_currentPageNumber, m_totalPages, m_currentOverallPageNumber, m_overallTotalPages);
            reportObjectModel.GlobalsImpl.SetPageName(m_pageName);
            _ = m_romReport.ReportDef;
            Microsoft.ReportingServices.ReportIntermediateFormat.ReportSection sectionDef = section.SectionDef;
            Microsoft.ReportingServices.ReportIntermediateFormat.Page          page       = sectionDef.Page;
            section.PageAggregatesOverReportItems = new Dictionary <string, AggregatesImpl>();
            m_processingContext.ReportObjectModel.ReportItemsImpl.SpecialMode = true;
            if (page.PageAggregates != null)
            {
                for (int i = 0; i < page.PageAggregates.Count; i++)
                {
                    Microsoft.ReportingServices.ReportIntermediateFormat.DataAggregateInfo dataAggregateInfo = page.PageAggregates[i];
                    aggregatesImpl.Remove(dataAggregateInfo);
                    dataAggregateInfo.ExprHostInitialized = false;
                    Microsoft.ReportingServices.ReportIntermediateFormat.DataAggregateObj dataAggregateObj = new Microsoft.ReportingServices.ReportIntermediateFormat.DataAggregateObj(dataAggregateInfo, m_processingContext);
                    dataAggregateObj.EvaluateParameters(out object[] _, out DataFieldStatus _);
                    string specialModeIndex = reportObjectModel.ReportItemsImpl.GetSpecialModeIndex();
                    if (specialModeIndex == null)
                    {
                        aggregatesImpl.Add(dataAggregateObj);
                    }
                    else
                    {
                        if (!section.PageAggregatesOverReportItems.TryGetValue(specialModeIndex, out AggregatesImpl value))
                        {
                            value = new AggregatesImpl(m_processingContext);
                            section.PageAggregatesOverReportItems.Add(specialModeIndex, value);
                        }
                        value.Add(dataAggregateObj);
                        m_reportItemToReportSection[specialModeIndex] = section;
                    }
                    dataAggregateObj.Init();
                }
            }
            reportObjectModel.ReportItemsImpl.SpecialMode = false;
            Microsoft.ReportingServices.ReportIntermediateFormat.PageSection rifObject = null;
            IReportScopeInstance romInstance = null;

            if (sectionDef.Page.PageHeader != null)
            {
                rifObject   = sectionDef.Page.PageHeader;
                romInstance = section.Page.PageHeader.Instance.ReportScopeInstance;
                section.Page.PageHeader.SetNewContext();
            }
            if (sectionDef.Page.PageFooter != null)
            {
                rifObject   = sectionDef.Page.PageFooter;
                romInstance = section.Page.PageFooter.Instance.ReportScopeInstance;
                section.Page.PageFooter.SetNewContext();
            }
            if (sectionDef != null)
            {
                m_processingContext.SetupContext(rifObject, romInstance);
            }
        }
Example #3
0
        public override void Deserialize(IntermediateFormatReader reader)
        {
            base.Deserialize(reader);
            reader.RegisterDeclaration(m_Declaration);
            while (reader.NextMember())
            {
                switch (reader.CurrentMember.MemberName)
                {
                case MemberName.PageHeader:
                    m_pageHeader = (PageSection)reader.ReadRIFObject();
                    break;

                case MemberName.PageFooter:
                    m_pageFooter = (PageSection)reader.ReadRIFObject();
                    break;

                case MemberName.PageHeight:
                    m_pageHeight = reader.ReadString();
                    break;

                case MemberName.PageHeightValue:
                    m_pageHeightValue = reader.ReadDouble();
                    break;

                case MemberName.PageWidth:
                    m_pageWidth = reader.ReadString();
                    break;

                case MemberName.PageWidthValue:
                    m_pageWidthValue = reader.ReadDouble();
                    break;

                case MemberName.LeftMargin:
                    m_leftMargin = reader.ReadString();
                    break;

                case MemberName.LeftMarginValue:
                    m_leftMarginValue = reader.ReadDouble();
                    break;

                case MemberName.RightMargin:
                    m_rightMargin = reader.ReadString();
                    break;

                case MemberName.RightMarginValue:
                    m_rightMarginValue = reader.ReadDouble();
                    break;

                case MemberName.TopMargin:
                    m_topMargin = reader.ReadString();
                    break;

                case MemberName.TopMarginValue:
                    m_topMarginValue = reader.ReadDouble();
                    break;

                case MemberName.BottomMargin:
                    m_bottomMargin = reader.ReadString();
                    break;

                case MemberName.BottomMarginValue:
                    m_bottomMarginValue = reader.ReadDouble();
                    break;

                case MemberName.InteractiveHeight:
                    m_interactiveHeight = reader.ReadString();
                    break;

                case MemberName.InteractiveHeightValue:
                    m_interactiveHeightValue = reader.ReadDouble();
                    break;

                case MemberName.InteractiveWidth:
                    m_interactiveWidth = reader.ReadString();
                    break;

                case MemberName.InteractiveWidthValue:
                    m_interactiveWidthValue = reader.ReadDouble();
                    break;

                case MemberName.Columns:
                    m_columns = reader.ReadInt32();
                    break;

                case MemberName.ColumnSpacing:
                    m_columnSpacing = reader.ReadString();
                    break;

                case MemberName.ColumnSpacingValue:
                    m_columnSpacingValue = reader.ReadDouble();
                    break;

                case MemberName.StyleClass:
                    m_styleClass = (Style)reader.ReadRIFObject();
                    break;

                case MemberName.ExprHostID:
                    m_exprHostID = reader.ReadInt32();
                    break;

                case MemberName.TextboxesInScope:
                    m_textboxesInScope = reader.ReadByteArray();
                    break;

                case MemberName.VariablesInScope:
                    m_variablesInScope = reader.ReadByteArray();
                    break;

                case MemberName.InScopeTextBoxes:
                    m_inScopeTextBoxes = reader.ReadGenericListOfReferences <TextBox>(this);
                    break;

                case MemberName.PageAggregates:
                    m_pageAggregates = reader.ReadGenericListOfRIFObjects <DataAggregateInfo>();
                    break;

                default:
                    Global.Tracer.Assert(condition: false);
                    break;
                }
            }
        }