void IHierarchyObj.Traverse(ProcessingStages operation, ITraversalContext traversalContext)
        {
            switch (operation)
            {
            case ProcessingStages.SortAndFilter:
                SortAndFilter((AggregateUpdateContext)traversalContext);
                break;

            case ProcessingStages.RunningValues:
                CalculateRunningValues((AggregateUpdateContext)traversalContext);
                break;

            case ProcessingStages.CreateGroupTree:
                CreateInstances((CreateInstancesTraversalContext)traversalContext);
                break;

            case ProcessingStages.UpdateAggregates:
                UpdateAggregates((AggregateUpdateContext)traversalContext);
                break;

            default:
                Global.Tracer.Assert(condition: false);
                break;
            }
        }
示例#2
0
 public override void Traverse(ProcessingStages operation, ITraversalContext traversalContext)
 {
     if (this.m_hierarchyNode != null)
     {
         this.m_hierarchyNode.Traverse(operation, traversalContext);
     }
 }
 void IHierarchyObj.Traverse(ProcessingStages operation, ITraversalContext traversalContext)
 {
     if (this.m_sortHierarchyStruct != null)
     {
         bool ascending = true;
         RuntimeSortFilterEventInfo runtimeSortFilterEventInfo = this.m_sortHierarchyStruct.SortInfo.Value();
         if (runtimeSortFilterEventInfo.EventSource.UserSort.SortExpressionScope == null)
         {
             ascending = runtimeSortFilterEventInfo.SortDirection;
         }
         this.m_sortHierarchyStruct.SortTree.Traverse(operation, ascending, traversalContext);
     }
     if (this.m_dataHolder != null)
     {
         using (this.m_dataHolder.PinValue())
         {
             this.m_dataHolder.Value().Traverse(operation, traversalContext);
         }
     }
     if (this.m_dataRowHolder != null)
     {
         using (this.m_hierarchyRoot.PinValue())
         {
             this.m_dataRowHolder.Traverse(operation, traversalContext, this.m_hierarchyRoot.Value());
         }
     }
 }
        internal override void Traverse(ProcessingStages operation, bool ascending, ITraversalContext traversalContext)
        {
            RuntimeGroupRootObj runtimeGroupRootObj = m_owner as RuntimeGroupRootObj;

            Global.Tracer.Assert(runtimeGroupRootObj != null, "(null != groupRootOwner)");
            runtimeGroupRootObj.TraverseLinkedGroupLeaves(operation, ascending, traversalContext);
        }
 internal override void Traverse(ProcessingStages operation, ITraversalContext traversalContext)
 {
     if (m_hierarchyNode != null)
     {
         m_hierarchyNode.Traverse(operation, traversalContext);
     }
 }
        public override void Traverse(ProcessingStages operation, bool ascending, ITraversalContext traversalContext)
        {
            RuntimeGroupRootObj runtimeGroupRootObj = base.m_owner as RuntimeGroupRootObj;

            Global.Tracer.Assert(null != runtimeGroupRootObj, "(null != groupRootOwner)");
            runtimeGroupRootObj.GroupOrDetailSortTree.Traverse(operation, ascending, traversalContext);
        }
示例#7
0
 protected override void Traverse(ProcessingStages operation, ITraversalContext context)
 {
     base.Traverse(operation, context);
     if (this.m_dataRegionScopedItems != null)
     {
         this.TraverseDataRegionScopedItems(operation, context);
     }
 }
 public void ReadRows(DataActions action, ITraversalContext context)
 {
     for (int i = 0; i < m_dataRows.Count; i++)
     {
         m_dataRows[i].SetFields(m_odpContext.ReportObjectModel.FieldsImpl);
         ReadRow(action, context);
     }
 }
示例#9
0
 public void ReadRows(DataActions action, ITraversalContext context)
 {
     for (int i = 0; i < this.m_dataRows.Count; i++)
     {
         DataFieldRow dataFieldRow = this.m_dataRows[i];
         dataFieldRow.SetFields(base.m_odpContext.ReportObjectModel.FieldsImpl);
         this.ReadRow(action, context);
     }
 }
示例#10
0
 protected void TraverseGroupOrSortTree(ProcessingStages operation, ITraversalContext traversalContext)
 {
     if (m_detailUserSortTargetInfo != null && m_groupingType != 0)
     {
         m_detailUserSortTargetInfo.SortTree.Traverse(operation, GetDetailSortDirection(), traversalContext);
     }
     else
     {
         m_grouping.Traverse(operation, m_expression == null || m_expression.Direction, traversalContext);
     }
 }
示例#11
0
 void IHierarchyObj.Traverse(ProcessingStages operation, ITraversalContext traversalContext)
 {
     if (this.m_dataRowHolder != null)
     {
         this.m_dataRowHolder.Traverse(operation, traversalContext, this);
     }
     else
     {
         this.m_sortTree.Traverse(operation, this.m_sortExpression.Direction, traversalContext);
     }
 }
示例#12
0
 public void Traverse(ProcessingStages operation, ITraversalContext traversalContext, IHierarchyObj owner)
 {
     Global.Tracer.Assert(ProcessingStages.UserSortFilter == operation || owner.InDataRowSortPhase, "Invalid call to RuntimeSortDataHolder.Traverse.  Must be in UserSortFilter stage or InDataRowSortPhase");
     if (this.m_firstRow != null)
     {
         DataRowSortOwnerTraversalContext context = traversalContext as DataRowSortOwnerTraversalContext;
         this.Traverse(this.m_firstRow, operation, context, owner);
         if (this.m_dataRows != null)
         {
             for (int i = 0; i < this.m_dataRows.Count; i++)
             {
                 this.Traverse(this.m_dataRows[i], operation, context, owner);
             }
         }
     }
 }
示例#13
0
        private void TraverseDataRegionScopedItems(ProcessingStages operation, ITraversalContext context)
        {
            switch (operation)
            {
            case ProcessingStages.SortAndFilter:
                this.m_dataRegionScopedItems.SortAndFilter((AggregateUpdateContext)context);
                break;

            case ProcessingStages.UpdateAggregates:
                this.m_dataRegionScopedItems.UpdateAggregates((AggregateUpdateContext)context);
                break;

            default:
                Global.Tracer.Assert(false, "Unknown ProcessingStage for TraverseDataRegionScopedItems");
                break;
            }
        }
 public override void ReadRow(DataActions dataAction, ITraversalContext context)
 {
     if (DataActions.UserSort == dataAction)
     {
         RuntimeDataRegionObj.CommonFirstRow(base.m_odpContext, ref base.m_firstRowIsAggregate, ref base.m_firstRow);
         base.CommonNextRow(base.m_dataRows);
     }
     else if (DataActions.AggregatesOfAggregates == dataAction)
     {
         AggregateUpdateContext aggregateUpdateContext = (AggregateUpdateContext)context;
         aggregateUpdateContext.UpdateAggregatesForRow();
     }
     else
     {
         if (FlagUtils.HasFlag(dataAction, DataActions.PostSortAggregatesOfAggregates))
         {
             AggregateUpdateContext aggregateUpdateContext2 = (AggregateUpdateContext)context;
             aggregateUpdateContext2.UpdateAggregatesForRow();
         }
         if (!base.m_dataRegionDef.ProcessCellRunningValues)
         {
             if (FlagUtils.HasFlag(dataAction, DataActions.PostSortAggregates))
             {
                 if (base.m_postSortAggregates != null)
                 {
                     RuntimeDataRegionObj.UpdateAggregates(base.m_odpContext, base.m_postSortAggregates, false);
                 }
                 if (base.m_runningValues != null)
                 {
                     RuntimeDataTablixObj.UpdateRunningValues(base.m_odpContext, base.m_runningValues);
                 }
             }
             if (base.m_outerScope != null && (dataAction & base.m_outerDataAction) != 0)
             {
                 using (base.m_outerScope.PinValue())
                 {
                     IScope scope = base.m_outerScope.Value();
                     scope.ReadRow(dataAction, context);
                 }
             }
         }
     }
 }
示例#15
0
        public override void ReadRow(DataActions dataAction, ITraversalContext context)
        {
            if (!FlagUtils.HasFlag(dataAction, DataActions.PostSortAggregates) || !FlagUtils.HasFlag(m_dataAction, DataActions.PostSortAggregates))
            {
                return;
            }
            AggregatesImpl aggregatesImpl = m_odpContext.ReportObjectModel.AggregatesImpl;

            if (m_hierarchyDef.DataRegionDef.ProcessCellRunningValues)
            {
                if (m_cellRVs != null)
                {
                    for (int i = 0; i < m_cellRVs.Count; i++)
                    {
                        string text = m_cellRVs[i];
                        Microsoft.ReportingServices.ReportIntermediateFormat.DataAggregateObj aggregateObj = aggregatesImpl.GetAggregateObj(text);
                        Global.Tracer.Assert(aggregateObj != null, "Missing expected running value: {0}", text);
                        aggregateObj.Update();
                    }
                }
                if (m_outerScope != null && m_hierarchyDef.DataRegionDef.CellPostSortAggregates != null)
                {
                    using (m_outerScope.PinValue())
                    {
                        m_outerScope.Value().ReadRow(dataAction, context);
                    }
                }
                return;
            }
            if (m_staticCellRVs != null)
            {
                for (int j = 0; j < m_staticCellRVs.Count; j++)
                {
                    string text2 = m_staticCellRVs[j];
                    Microsoft.ReportingServices.ReportIntermediateFormat.DataAggregateObj aggregateObj2 = aggregatesImpl.GetAggregateObj(text2);
                    Global.Tracer.Assert(aggregateObj2 != null, "Missing expected running value: {0}", text2);
                    aggregateObj2.Update();
                }
            }
            base.ReadRow(dataAction, context);
        }
        protected virtual void Traverse(ProcessingStages operation, ITraversalContext context)
        {
            bool num = base.DataRegionDef.ProcessingInnerGrouping == Microsoft.ReportingServices.ReportIntermediateFormat.DataRegion.ProcessingInnerGroupings.Column;

            IReference <RuntimeMemberObj>[] array  = num ? m_outerGroupings : m_innerGroupings;
            IReference <RuntimeMemberObj>[] array2 = num ? m_innerGroupings : m_outerGroupings;
            if (array != null)
            {
                for (int i = 0; i < array.Length; i++)
                {
                    TraverseMember(array[i], operation, context);
                }
            }
            if (array2 != null)
            {
                for (int j = 0; j < array2.Length; j++)
                {
                    TraverseMember(array2[j], operation, context);
                }
            }
        }
示例#17
0
 public override void ReadRow(DataActions dataAction, ITraversalContext context)
 {
     if (DataActions.PostSortAggregates == dataAction && m_runningValuesInGroup != null)
     {
         AggregatesImpl aggregatesImpl = m_odpContext.ReportObjectModel.AggregatesImpl;
         for (int i = 0; i < m_runningValuesInGroup.Count; i++)
         {
             string text = m_runningValuesInGroup[i];
             Microsoft.ReportingServices.ReportIntermediateFormat.DataAggregateObj aggregateObj = aggregatesImpl.GetAggregateObj(text);
             Global.Tracer.Assert(aggregateObj != null, "Missing expected running value aggregate: {0}", text);
             aggregateObj.Update();
         }
     }
     if (m_outerScope != null && (dataAction & m_outerDataAction) != 0)
     {
         using (m_outerScope.PinValue())
         {
             m_outerScope.Value().ReadRow(dataAction, context);
         }
     }
 }
 public override void ReadRow(DataActions dataAction, ITraversalContext context)
 {
     if (DataActions.UserSort == dataAction)
     {
         RuntimeDataRegionObj.CommonFirstRow(m_odpContext, ref m_firstRowIsAggregate, ref m_firstRow);
         CommonNextRow(m_dataRows);
         return;
     }
     if (DataActions.AggregatesOfAggregates == dataAction)
     {
         ((AggregateUpdateContext)context).UpdateAggregatesForRow();
         return;
     }
     if (FlagUtils.HasFlag(dataAction, DataActions.PostSortAggregatesOfAggregates))
     {
         ((AggregateUpdateContext)context).UpdateAggregatesForRow();
     }
     if (m_dataRegionDef.ProcessCellRunningValues)
     {
         return;
     }
     if (FlagUtils.HasFlag(dataAction, DataActions.PostSortAggregates))
     {
         if (m_postSortAggregates != null)
         {
             RuntimeDataRegionObj.UpdateAggregates(m_odpContext, m_postSortAggregates, updateAndSetup: false);
         }
         if (m_runningValues != null)
         {
             UpdateRunningValues(m_odpContext, m_runningValues);
         }
     }
     if (m_outerScope != null && (dataAction & m_outerDataAction) != 0)
     {
         using (m_outerScope.PinValue())
         {
             m_outerScope.Value().ReadRow(dataAction, context);
         }
     }
 }
 public abstract void ReadRow(DataActions dataAction, ITraversalContext context);
        private void TraverseMember(IReference <RuntimeMemberObj> memberRef, ProcessingStages operation, ITraversalContext context)
        {
            using (memberRef.PinValue())
            {
                switch (operation)
                {
                case ProcessingStages.SortAndFilter:
                    memberRef.Value().SortAndFilter((AggregateUpdateContext)context);
                    break;

                case ProcessingStages.UpdateAggregates:
                    memberRef.Value().UpdateAggregates((AggregateUpdateContext)context);
                    break;

                default:
                    Global.Tracer.Assert(condition: false, "Unknown ProcessingStage in TraverseMember");
                    break;
                }
            }
        }
 internal abstract void Traverse(ProcessingStages operation, bool ascending, ITraversalContext traversalContext);
 public override void ReadRow(DataActions dataAction, ITraversalContext context)
 {
     Global.Tracer.Assert(condition: false);
 }
 void IScope.ReadRow(DataActions dataAction, ITraversalContext context)
 {
     Global.Tracer.Assert(false);
 }
示例#24
0
 internal void TraverseLinkedGroupLeaves(ProcessingStages operation, bool ascending, ITraversalContext traversalContext)
 {
     if (null != m_firstChild)
     {
         using (m_firstChild.PinValue())
         {
             m_firstChild.Value().TraverseAllLeafNodes(operation, traversalContext);
         }
     }
 }
 public abstract void Traverse(ProcessingStages operation, ITraversalContext traversalContext);
示例#26
0
 public void Traverse(ProcessingStages operation, bool ascending, ITraversalContext traversalContext)
 {
     this.m_root.Traverse(operation, ascending, this.m_nodes, traversalContext);
 }
 void IHierarchyObj.Traverse(ProcessingStages operation, ITraversalContext traversalContext)
 {
     Global.Tracer.Assert(condition: false);
 }
示例#28
0
 public override void Traverse(ProcessingStages operation, bool ascending, ITraversalContext traversalContext)
 {
     this.m_tree.Traverse(operation, ascending, traversalContext);
 }
示例#29
0
 internal void Traverse(ProcessingStages operation, bool ascending, ITraversalContext traversalContext)
 {
     m_root.Traverse(operation, ascending, m_nodes, traversalContext);
 }
示例#30
0
 internal void Traverse(ProcessingStages operation, bool ascending, ScalableList <BTreeNode> nodes, ITraversalContext traversalContext)
 {
     if (ascending)
     {
         for (int i = 0; i < m_tuples.Count; i++)
         {
             m_tuples[i].Traverse(operation, ascending, nodes, traversalContext);
         }
         return;
     }
     for (int num = m_tuples.Count - 1; num >= 0; num--)
     {
         m_tuples[num].Traverse(operation, ascending, nodes, traversalContext);
     }
 }