Ejemplo n.º 1
0
        private void Traverse(ProcessingStages operation, AggregateUpdateContext context)
        {
            if (this.Count != 0)
            {
                int num = this.m_firstCellKey;
                int num2;
                do
                {
                    num2 = num;
                    IDisposable disposable = default(IDisposable);
                    RuntimeCell andPinCell = this.GetAndPinCell(num2, out disposable);
                    switch (operation)
                    {
                    case ProcessingStages.SortAndFilter:
                        andPinCell.SortAndFilter(context);
                        break;

                    case ProcessingStages.UpdateAggregates:
                        andPinCell.UpdateAggregates(context);
                        break;

                    default:
                        Global.Tracer.Assert(false, "Unknown operation in Traverse");
                        break;
                    }
                    num = andPinCell.NextCell;
                    if (disposable != null)
                    {
                        disposable.Dispose();
                    }
                }while (num2 != this.m_lastCellKey);
            }
        }
Ejemplo n.º 2
0
		private void Traverse(ProcessingStages operation, AggregateUpdateContext context)
		{
			if (Count == 0)
			{
				return;
			}
			int num = m_firstCellKey;
			int num2;
			do
			{
				num2 = num;
				IDisposable cleanupRef;
				RuntimeCell andPinCell = GetAndPinCell(num2, out cleanupRef);
				switch (operation)
				{
				case ProcessingStages.SortAndFilter:
					andPinCell.SortAndFilter(context);
					break;
				case ProcessingStages.UpdateAggregates:
					andPinCell.UpdateAggregates(context);
					break;
				default:
					Global.Tracer.Assert(condition: false, "Unknown operation in Traverse");
					break;
				}
				num = andPinCell.NextCell;
				cleanupRef?.Dispose();
			}
			while (num2 != m_lastCellKey);
		}
 public override void Advance()
 {
     using (this.m_lastInnerGroupLeafRef.PinValue())
     {
         using (this.m_lastOuterGroupLeafRef.PinValue())
         {
             RuntimeDataTablixGroupLeafObj runtimeDataTablixGroupLeafObj = this.m_lastInnerGroupLeafRef.Value();
             RuntimeDataTablixGroupLeafObj rowGroupLeaf = this.m_lastOuterGroupLeafRef.Value();
             OnDemandStateManager          stateManager = base.m_odpContext.StateManager;
             ObjectModelImpl reportObjectModel          = base.m_odpContext.ReportObjectModel;
             if (base.m_idcDataSet.DataSetCore.FieldsContext != null)
             {
                 reportObjectModel.RestoreFields(base.m_idcDataSet.DataSetCore.FieldsContext);
             }
             while (this.SetupNextRow(this.m_lastOuterPrimaryKeyValues, this.m_activeOuterRelationship, this.m_lastInnerPrimaryKeyValues, this.m_activeInnerRelationship))
             {
                 base.ApplyGroupingFieldsForServerAggregates(this.m_cellScope);
                 RuntimeCell orCreateCell = runtimeDataTablixGroupLeafObj.GetOrCreateCell(rowGroupLeaf);
                 bool        rowAccepted  = orCreateCell.NextRow();
                 if (stateManager.ShouldStopPipelineAdvance(rowAccepted))
                 {
                     break;
                 }
             }
         }
     }
 }
Ejemplo n.º 4
0
		internal void CalculateRunningValues(Microsoft.ReportingServices.ReportIntermediateFormat.DataRegion dataRegionDef, Dictionary<string, IReference<RuntimeGroupRootObj>> groupCol, IReference<RuntimeGroupRootObj> lastGroup, IReference<RuntimeDataTablixGroupLeafObj> owner, AggregateUpdateContext aggContext)
		{
			IDisposable cleanupRef;
			RuntimeCell orCreateCell = GetOrCreateCell(dataRegionDef, owner, dataRegionDef.CurrentOuterGroupRoot, out cleanupRef);
			if (orCreateCell != null)
			{
				orCreateCell.CalculateRunningValues(groupCol, lastGroup, aggContext);
				cleanupRef?.Dispose();
			}
		}
Ejemplo n.º 5
0
        internal override void CreateCell(RuntimeCells cellsCollection, int collectionKey, Microsoft.ReportingServices.ReportIntermediateFormat.ReportHierarchyNode outerGroupingMember, Microsoft.ReportingServices.ReportIntermediateFormat.ReportHierarchyNode innerGroupingMember, Microsoft.ReportingServices.ReportIntermediateFormat.DataRegion dataRegionDef)
        {
            RuntimeCell runtimeCell = CreateCell(outerGroupingMember, innerGroupingMember);

            if (runtimeCell.SelfReference == null)
            {
                cellsCollection.AddCell(collectionKey, runtimeCell);
                return;
            }
            IReference <RuntimeCell> selfReference = runtimeCell.SelfReference;

            selfReference.UnPinValue();
            cellsCollection.AddCell(collectionKey, selfReference);
        }
Ejemplo n.º 6
0
        public void CalculateRunningValues(AspNetCore.ReportingServices.ReportIntermediateFormat.DataRegion dataRegionDef, Dictionary <string, IReference <RuntimeGroupRootObj> > groupCol, IReference <RuntimeGroupRootObj> lastGroup, IReference <RuntimeDataTablixGroupLeafObj> owner, AggregateUpdateContext aggContext)
        {
            IDisposable disposable   = default(IDisposable);
            RuntimeCell orCreateCell = this.GetOrCreateCell(dataRegionDef, owner, dataRegionDef.CurrentOuterGroupRoot, out disposable);

            if (orCreateCell != null)
            {
                orCreateCell.CalculateRunningValues(groupCol, lastGroup, aggContext);
                if (disposable != null)
                {
                    disposable.Dispose();
                }
            }
        }
        public override void CreateCell(RuntimeCells cellsCollection, int collectionKey, AspNetCore.ReportingServices.ReportIntermediateFormat.ReportHierarchyNode outerGroupingMember, AspNetCore.ReportingServices.ReportIntermediateFormat.ReportHierarchyNode innerGroupingMember, AspNetCore.ReportingServices.ReportIntermediateFormat.DataRegion dataRegionDef)
        {
            RuntimeCell runtimeCell = this.CreateCell(outerGroupingMember, innerGroupingMember);

            if ((BaseReference)runtimeCell.SelfReference == (object)null)
            {
                cellsCollection.AddCell(collectionKey, runtimeCell);
            }
            else
            {
                IReference <RuntimeCell> selfReference = runtimeCell.SelfReference;
                selfReference.UnPinValue();
                cellsCollection.AddCell(collectionKey, selfReference);
            }
        }
Ejemplo n.º 8
0
		private RuntimeCell GetOrCreateCellByIndex(int groupLeafIndex, Microsoft.ReportingServices.ReportIntermediateFormat.DataRegion dataRegionDef, IReference<RuntimeDataTablixGroupLeafObj> ownerRef, RuntimeDataTablixGroupRootObj currOuterGroupRoot, out IDisposable cleanupRef)
		{
			RuntimeCell andPinCell = GetAndPinCell(groupLeafIndex, out cleanupRef);
			if (andPinCell == null)
			{
				using (ownerRef.PinValue())
				{
					RuntimeDataTablixGroupLeafObj runtimeDataTablixGroupLeafObj = ownerRef.Value();
					if (!RuntimeCell.HasOnlySimpleGroupTreeCells(currOuterGroupRoot.HierarchyDef, runtimeDataTablixGroupLeafObj.MemberDef, dataRegionDef))
					{
						runtimeDataTablixGroupLeafObj.CreateCell(this, groupLeafIndex, currOuterGroupRoot.HierarchyDef, runtimeDataTablixGroupLeafObj.MemberDef, dataRegionDef);
					}
				}
				andPinCell = GetAndPinCell(groupLeafIndex, out cleanupRef);
			}
			return andPinCell;
		}
Ejemplo n.º 9
0
 private void InternalAdd(int key, IStorable cell)
 {
     if (this.Count == 0)
     {
         this.m_firstCellKey = key;
     }
     else
     {
         IDisposable disposable = default(IDisposable);
         RuntimeCell andPinCell = this.GetAndPinCell(this.m_lastCellKey, out disposable);
         andPinCell.NextCell = key;
         if (disposable != null)
         {
             disposable.Dispose();
         }
     }
     this.m_lastCellKey = key;
     this.m_collection.SetValueWithExtension(key, cell);
 }
Ejemplo n.º 10
0
		internal RuntimeCell GetCell(int key, out RuntimeCellReference cellRef)
		{
			RuntimeCell result = null;
			cellRef = null;
			if (key < m_collection.Count)
			{
				IStorable storable = m_collection[key];
				if (storable != null)
				{
					if (IsCellReference(storable))
					{
						cellRef = (RuntimeCellReference)storable;
						result = cellRef.Value();
					}
					else
					{
						result = (RuntimeCell)storable;
					}
				}
			}
			return result;
		}
Ejemplo n.º 11
0
        public RuntimeCell GetCell(int key, out RuntimeCellReference cellRef)
        {
            RuntimeCell result = null;

            cellRef = null;
            if (key < this.m_collection.Count)
            {
                IStorable storable = this.m_collection[key];
                if (storable != null)
                {
                    if (this.IsCellReference(storable))
                    {
                        cellRef = (RuntimeCellReference)storable;
                        result  = cellRef.Value();
                    }
                    else
                    {
                        result = (RuntimeCell)storable;
                    }
                }
            }
            return(result);
        }
        private static List <Declaration> BuildDeclarations()
        {
            List <Declaration> list = new List <Declaration>(83);

            list.Add(Aggregate.GetDeclaration());
            list.Add(AggregateRow.GetDeclaration());
            list.Add(Avg.GetDeclaration());
            list.Add(BTree.GetDeclaration());
            list.Add(BTreeNode.GetDeclaration());
            list.Add(BTreeNodeTuple.GetDeclaration());
            list.Add(BTreeNodeTupleList.GetDeclaration());
            list.Add(BTreeNodeHierarchyObj.GetDeclaration());
            list.Add(CalculatedFieldWrapperImpl.GetDeclaration());
            list.Add(ChildLeafInfo.GetDeclaration());
            list.Add(Count.GetDeclaration());
            list.Add(CountDistinct.GetDeclaration());
            list.Add(CountRows.GetDeclaration());
            list.Add(DataAggregateObj.GetDeclaration());
            list.Add(DataAggregateObjResult.GetDeclaration());
            list.Add(DataRegionMemberInstance.GetDeclaration());
            list.Add(DataFieldRow.GetDeclaration());
            list.Add(FieldImpl.GetDeclaration());
            list.Add(First.GetDeclaration());
            list.Add(Last.GetDeclaration());
            list.Add(Max.GetDeclaration());
            list.Add(Min.GetDeclaration());
            list.Add(Previous.GetDeclaration());
            list.Add(RuntimeCell.GetDeclaration());
            list.Add(RuntimeCells.GetDeclaration());
            list.Add(RuntimeCellWithContents.GetDeclaration());
            list.Add(RuntimeChartCriCell.GetDeclaration());
            list.Add(RuntimeChartCriGroupLeafObj.GetDeclaration());
            list.Add(RuntimeChartCriObj.GetDeclaration());
            list.Add(RuntimeChartObj.GetDeclaration());
            list.Add(RuntimeCriObj.GetDeclaration());
            list.Add(RuntimeDataRegionObj.GetDeclaration());
            list.Add(RuntimeDataTablixObj.GetDeclaration());
            list.Add(RuntimeDataTablixGroupLeafObj.GetDeclaration());
            list.Add(RuntimeDataTablixGroupRootObj.GetDeclaration());
            list.Add(RuntimeDataTablixMemberObj.GetDeclaration());
            list.Add(RuntimeDataTablixWithScopedItemsObj.GetDeclaration());
            list.Add(RuntimeDataTablixWithScopedItemsGroupLeafObj.GetDeclaration());
            list.Add(RuntimeDetailObj.GetDeclaration());
            list.Add(RuntimeExpressionInfo.GetDeclaration());
            list.Add(RuntimeGroupLeafObj.GetDeclaration());
            list.Add(RuntimeGroupObj.GetDeclaration());
            list.Add(RuntimeGroupRootObj.GetDeclaration());
            list.Add(RuntimeGroupingObj.GetDeclaration());
            list.Add(RuntimeHierarchyObj.GetDeclaration());
            list.Add(RuntimeMemberObj.GetDeclaration());
            list.Add(RuntimeRDLDataRegionObj.GetDeclaration());
            list.Add(RuntimeRICollection.GetDeclaration());
            list.Add(RuntimeSortDataHolder.GetDeclaration());
            list.Add(RuntimeSortFilterEventInfo.GetDeclaration());
            list.Add(RuntimeSortFilterEventInfo.SortExpressionScopeInstanceHolder.GetDeclaration());
            list.Add(RuntimeSortFilterEventInfo.SortFilterExpressionScopeObj.GetDeclaration());
            list.Add(RuntimeSortFilterEventInfo.SortScopeValuesHolder.GetDeclaration());
            list.Add(RuntimeSortHierarchyObj.GetDeclaration());
            list.Add(RuntimeSortHierarchyObj.SortHierarchyStructure.GetDeclaration());
            list.Add(RuntimeDataRowSortHierarchyObj.GetDeclaration());
            list.Add(RuntimeTablixCell.GetDeclaration());
            list.Add(RuntimeTablixGroupLeafObj.GetDeclaration());
            list.Add(RuntimeTablixObj.GetDeclaration());
            list.Add(RuntimeUserSortTargetInfo.GetDeclaration());
            list.Add(ScopeInstance.GetDeclaration());
            list.Add(ScopeLookupTable.GetDeclaration());
            list.Add(StDev.GetDeclaration());
            list.Add(StDevP.GetDeclaration());
            list.Add(Sum.GetDeclaration());
            list.Add(Var.GetDeclaration());
            list.Add(VarBase.GetDeclaration());
            list.Add(VarP.GetDeclaration());
            list.Add(Filters.FilterKey.GetDeclaration());
            list.Add(RuntimeGaugePanelObj.GetDeclaration());
            list.Add(LookupMatches.GetDeclaration());
            list.Add(LookupMatchesWithRows.GetDeclaration());
            list.Add(LookupTable.GetDeclaration());
            list.Add(RuntimeMapDataRegionObj.GetDeclaration());
            list.Add(DataScopeInfo.GetDeclaration());
            list.Add(BucketedDataAggregateObjs.GetDeclaration());
            list.Add(DataAggregateObjBucket.GetDeclaration());
            list.Add(RuntimeGroupingObjHash.GetDeclaration());
            list.Add(RuntimeGroupingObjTree.GetDeclaration());
            list.Add(RuntimeGroupingObjDetail.GetDeclaration());
            list.Add(RuntimeGroupingObjDetailUserSort.GetDeclaration());
            list.Add(RuntimeGroupingObjLinkedList.GetDeclaration());
            list.Add(RuntimeGroupingObjNaturalGroup.GetDeclaration());
            return(list);
        }
Ejemplo n.º 13
0
		internal void AddCell(int key, RuntimeCell cell)
		{
			InternalAdd(key, cell);
		}
Ejemplo n.º 14
0
 public void AddCell(int key, RuntimeCell cell)
 {
     this.InternalAdd(key, cell);
 }