Esempio n. 1
0
        internal RuntimeDataTablixGroupRootObj(IReference <IScope> outerScope, Microsoft.ReportingServices.ReportIntermediateFormat.ReportHierarchyNode dynamicMember, ref DataActions dataAction, OnDemandProcessingContext odpContext, IReference <RuntimeMemberObj>[] innerGroupings, bool outermostStatics, int headingLevel, Microsoft.ReportingServices.ReportProcessing.ObjectType objectType)
            : base(outerScope, dynamicMember, dataAction, odpContext, objectType)
        {
            m_innerGroupings   = innerGroupings;
            m_headingLevel     = headingLevel;
            m_outermostStatics = outermostStatics;
            m_hasLeafCells     = false;
            HierarchyNodeList innerStaticMembersInSameScope = dynamicMember.InnerStaticMembersInSameScope;

            m_hasLeafCells = (!dynamicMember.HasInnerDynamic || (innerStaticMembersInSameScope != null && innerStaticMembersInSameScope.LeafCellIndexes != null));
            if (((innerGroupings == null && innerStaticMembersInSameScope != null && innerStaticMembersInSameScope.LeafCellIndexes != null) || (innerGroupings != null && outermostStatics)) && m_hasLeafCells)
            {
                m_processStaticCellsForRVs = true;
            }
            if (m_hasLeafCells && outermostStatics)
            {
                m_processOutermostStaticCells = true;
            }
            NeedProcessDataActions(dynamicMember);
            NeedProcessDataActions(dynamicMember.InnerStaticMembersInSameScope);
            if (dynamicMember.Grouping.Filters == null)
            {
                dataAction = DataActions.None;
            }
            if ((m_processOutermostStaticCells || m_processStaticCellsForRVs) && (dynamicMember.DataRegionDef.CellPostSortAggregates != null || dynamicMember.DataRegionDef.CellRunningValues != null))
            {
                m_dataAction |= DataActions.PostSortAggregates;
            }
        }
        private void CreateRuntimeMemberObjects(HierarchyNodeList outerMembers, HierarchyNodeList innerMembers, out HierarchyNodeList outerTopLevelStaticMembers, out HierarchyNodeList innerTopLevelStaticMembers, ref DataActions innerDataAction)
        {
            bool hasOppositeStaticLeafMembers        = false;
            HierarchyNodeList topLevelDynamicMembers = null;

            outerTopLevelStaticMembers = null;
            if (outerMembers != null)
            {
                hasOppositeStaticLeafMembers = outerMembers.HasStaticLeafMembers;
                topLevelDynamicMembers       = outerMembers.DynamicMembersAtScope;
                outerTopLevelStaticMembers   = outerMembers.StaticMembersInSameScope;
            }
            bool hasOppositeStaticLeafMembers2        = false;
            HierarchyNodeList topLevelDynamicMembers2 = null;

            innerTopLevelStaticMembers = null;
            if (innerMembers != null)
            {
                hasOppositeStaticLeafMembers2 = innerMembers.HasStaticLeafMembers;
                topLevelDynamicMembers2       = innerMembers.DynamicMembersAtScope;
                innerTopLevelStaticMembers    = innerMembers.StaticMembersInSameScope;
            }
            DataActions groupingDataAction = DataActions.None;

            CreateTopLevelRuntimeGroupings(ref groupingDataAction, ref m_innerGroupings, innerTopLevelStaticMembers, topLevelDynamicMembers2, null, hasOppositeStaticLeafMembers);
            Global.Tracer.Assert(m_innerGroupings != null && m_innerGroupings.Length >= 1, "(null != m_innerGroupings && m_innerGroupings.Length >= 1)");
            CreateTopLevelRuntimeGroupings(ref innerDataAction, ref m_outerGroupings, outerTopLevelStaticMembers, topLevelDynamicMembers, m_innerGroupings, hasOppositeStaticLeafMembers2);
        }
Esempio n. 3
0
 private void NeedProcessDataActions(HierarchyNodeList members)
 {
     if (members != null)
     {
         for (int i = 0; i < members.Count; i++)
         {
             NeedProcessDataActions(members[i]);
         }
     }
 }
Esempio n. 4
0
        public RuntimeDataTablixGroupRootObj(IReference <IScope> outerScope, AspNetCore.ReportingServices.ReportIntermediateFormat.ReportHierarchyNode dynamicMember, ref DataActions dataAction, OnDemandProcessingContext odpContext, IReference <RuntimeMemberObj>[] innerGroupings, bool outermostStatics, int headingLevel, AspNetCore.ReportingServices.ReportProcessing.ObjectType objectType)
            : base(outerScope, dynamicMember, dataAction, odpContext, objectType)
        {
            this.m_innerGroupings   = innerGroupings;
            this.m_headingLevel     = headingLevel;
            this.m_outermostStatics = outermostStatics;
            this.m_hasLeafCells     = false;
            HierarchyNodeList innerStaticMembersInSameScope = dynamicMember.InnerStaticMembersInSameScope;

            this.m_hasLeafCells = (!dynamicMember.HasInnerDynamic || (innerStaticMembersInSameScope != null && innerStaticMembersInSameScope.LeafCellIndexes != null));
            if (innerGroupings == null && innerStaticMembersInSameScope != null && innerStaticMembersInSameScope.LeafCellIndexes != null)
            {
                goto IL_0075;
            }
            if (innerGroupings != null && outermostStatics)
            {
                goto IL_0075;
            }
            goto IL_0084;
IL_0084:
            if (this.m_hasLeafCells && outermostStatics)
            {
                this.m_processOutermostStaticCells = true;
            }
            this.NeedProcessDataActions(dynamicMember);
            this.NeedProcessDataActions(dynamicMember.InnerStaticMembersInSameScope);
            if (dynamicMember.Grouping.Filters == null)
            {
                dataAction = DataActions.None;
            }
            if (!this.m_processOutermostStaticCells && !this.m_processStaticCellsForRVs)
            {
                return;
            }
            if (dynamicMember.DataRegionDef.CellPostSortAggregates == null && dynamicMember.DataRegionDef.CellRunningValues == null)
            {
                return;
            }
            base.m_dataAction |= DataActions.PostSortAggregates;
            return;

IL_0075:
            if (this.m_hasLeafCells)
            {
                this.m_processStaticCellsForRVs = true;
            }
            goto IL_0084;
        }
        protected override void ConstructRuntimeStructure(ref DataActions innerDataAction, bool onePassProcess)
        {
            HierarchyNodeList hierarchyNodeList  = default(HierarchyNodeList);
            HierarchyNodeList hierarchyNodeList2 = default(HierarchyNodeList);

            this.CreateRuntimeMemberObjects(base.m_dataRegionDef.OuterMembers, base.m_dataRegionDef.InnerMembers, out hierarchyNodeList, out hierarchyNodeList2, ref innerDataAction);
            if (((hierarchyNodeList != null && hierarchyNodeList.Count != 0) || (hierarchyNodeList2 != null && hierarchyNodeList2.Count != 0)) && base.DataRegionDef.OutermostStaticColumnIndexes == null && base.DataRegionDef.OutermostStaticRowIndexes == null)
            {
                List <int> list  = (hierarchyNodeList2 != null) ? hierarchyNodeList2.LeafCellIndexes : null;
                List <int> list2 = (hierarchyNodeList != null) ? hierarchyNodeList.LeafCellIndexes : null;
                if (base.DataRegionDef.ProcessingInnerGrouping == AspNetCore.ReportingServices.ReportIntermediateFormat.DataRegion.ProcessingInnerGroupings.Column)
                {
                    base.DataRegionDef.OutermostStaticColumnIndexes = list;
                    base.DataRegionDef.OutermostStaticRowIndexes    = list2;
                }
                else
                {
                    base.DataRegionDef.OutermostStaticColumnIndexes = list2;
                    base.DataRegionDef.OutermostStaticRowIndexes    = list;
                }
            }
        }
        private void CreateTopLevelRuntimeGroupings(ref DataActions groupingDataAction, ref IReference <RuntimeMemberObj>[] groupings, HierarchyNodeList topLevelStaticMembers, HierarchyNodeList topLevelDynamicMembers, IReference <RuntimeMemberObj>[] innerGroupings, bool hasOppositeStaticLeafMembers)
        {
            int num = topLevelDynamicMembers?.Count ?? 0;

            groupings = new IReference <RuntimeMemberObj> [Math.Max(1, num)];
            if (num == 0)
            {
                IReference <RuntimeMemberObj> reference = RuntimeDataTablixMemberObj.CreateRuntimeMemberObject(m_selfReference, null, ref groupingDataAction, m_odpContext, innerGroupings, topLevelStaticMembers, hasOppositeStaticLeafMembers, 0, base.ObjectType);
                groupings[0] = reference;
                return;
            }
            for (int i = 0; i < num; i++)
            {
                Microsoft.ReportingServices.ReportIntermediateFormat.ReportHierarchyNode dynamicMemberDef = topLevelDynamicMembers[i];
                IReference <RuntimeMemberObj> reference2 = RuntimeDataTablixMemberObj.CreateRuntimeMemberObject(m_selfReference, dynamicMemberDef, ref groupingDataAction, m_odpContext, innerGroupings, (i == 0) ? topLevelStaticMembers : null, hasOppositeStaticLeafMembers, 0, base.ObjectType);
                groupings[i] = reference2;
            }
        }
Esempio n. 7
0
        internal static IReference <RuntimeMemberObj> CreateRuntimeMemberObject(IReference <IScope> owner, Microsoft.ReportingServices.ReportIntermediateFormat.ReportHierarchyNode dynamicMemberDef, ref DataActions dataAction, OnDemandProcessingContext odpContext, IReference <RuntimeMemberObj>[] innerGroupings, HierarchyNodeList staticMembers, bool outerMostStatics, int headingLevel, Microsoft.ReportingServices.ReportProcessing.ObjectType dataRegionType)
        {
            RuntimeDataTablixMemberObj obj = new RuntimeDataTablixMemberObj(owner, dynamicMemberDef, ref dataAction, odpContext, innerGroupings, staticMembers, outerMostStatics, headingLevel, dataRegionType);

            return(odpContext.TablixProcessingScalabilityCache.Allocate((RuntimeMemberObj)obj, headingLevel));
        }
Esempio n. 8
0
        private RuntimeDataTablixMemberObj(IReference <IScope> owner, Microsoft.ReportingServices.ReportIntermediateFormat.ReportHierarchyNode dynamicMember, ref DataActions dataAction, OnDemandProcessingContext odpContext, IReference <RuntimeMemberObj>[] innerGroupings, HierarchyNodeList staticMembers, bool outerMostStatics, int headingLevel, Microsoft.ReportingServices.ReportProcessing.ObjectType objectType)
            : base(owner, dynamicMember)
        {
            int excludedCellIndex = -1;

            if (dynamicMember != null)
            {
                excludedCellIndex = dynamicMember.MemberCellIndex;
                RuntimeDataTablixGroupRootObj runtimeDataTablixGroupRootObj = new RuntimeDataTablixGroupRootObj(owner, dynamicMember, ref dataAction, odpContext, innerGroupings, outerMostStatics, headingLevel, objectType);
                m_groupRoot = (RuntimeDataTablixGroupRootObjReference)runtimeDataTablixGroupRootObj.SelfReference;
                m_groupRoot.UnPinValue();
            }
            if (staticMembers != null && staticMembers.Count != 0)
            {
                _ = staticMembers.Count;
                m_hasStaticMembers      = true;
                m_staticLeafCellIndexes = staticMembers.GetLeafCellIndexes(excludedCellIndex);
            }
        }