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); } }
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; } } } } }
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(); } }
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); }
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); } }
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; }
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); }
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; }
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); }
internal void AddCell(int key, RuntimeCell cell) { InternalAdd(key, cell); }
public void AddCell(int key, RuntimeCell cell) { this.InternalAdd(key, cell); }