private void CopyDomainScopeGroupInstance(RuntimeGroupRootObj destination, ScalableDictionary <object, IReference <RuntimeHierarchyObj> > runtimeHierarchyObjRefs) { IReference <RuntimeHierarchyObj> reference = null; DomainScopeContext.DomainScopeInfo currentDomainScope = base.m_owner.OdpContext.DomainScopeContext.CurrentDomainScope; foreach (object key in runtimeHierarchyObjRefs.Keys) { currentDomainScope.AddKey(key); reference = runtimeHierarchyObjRefs[key]; using (reference.PinValue()) { RuntimeHierarchyObj runtimeHierarchyObj = reference.Value(); if (runtimeHierarchyObj.HierarchyObjs == null) { RuntimeGroupingObjHash runtimeGroupingObjHash = (RuntimeGroupingObjHash)runtimeHierarchyObj.Grouping; this.CopyDomainScopeGroupInstance(destination, runtimeGroupingObjHash.m_hashtable); } else { Global.Tracer.Assert(runtimeHierarchyObj.HierarchyObjs.Count == 1, "hierarchyObject.HierarchyObjs.Count == 1"); IReference <RuntimeHierarchyObj> reference2 = runtimeHierarchyObj.HierarchyObjs[0]; using (reference2.PinValue()) { RuntimeDataTablixGroupLeafObj runtimeDataTablixGroupLeafObj = (RuntimeDataTablixGroupLeafObj)reference2.Value(); currentDomainScope.CurrentRow = runtimeDataTablixGroupLeafObj.FirstRow; destination.NextRow(); } } } currentDomainScope.RemoveKey(); } }
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.TraverseLinkedGroupLeaves(operation, ascending, traversalContext); }
public override void CopyDomainScopeGroupInstances(RuntimeGroupRootObj destination) { OnDemandProcessingContext odpContext = base.m_owner.OdpContext; DomainScopeContext domainScopeContext = odpContext.DomainScopeContext; domainScopeContext.CurrentDomainScope = new DomainScopeContext.DomainScopeInfo(); domainScopeContext.CurrentDomainScope.InitializeKeys((base.m_owner as RuntimeGroupRootObj).GroupExpressions.Count); this.CopyDomainScopeGroupInstance(destination, this.m_hashtable); domainScopeContext.CurrentDomainScope = null; }
public ProcessingMessageList RegisterSpatialTypeComparisonError(string type) { AspNetCore.ReportingServices.ReportProcessing.ObjectType objectType = default(AspNetCore.ReportingServices.ReportProcessing.ObjectType); string name = default(string); using (this.m_hierarchyRoot.PinValue()) { RuntimeGroupRootObj runtimeGroupRootObj = (RuntimeGroupRootObj)this.m_hierarchyRoot.Value(); objectType = runtimeGroupRootObj.HierarchyDef.DataRegionDef.ObjectType; name = runtimeGroupRootObj.HierarchyDef.DataRegionDef.Name; } return(base.m_odpContext.RegisterSpatialTypeComparisonError(objectType, name, type)); }
private void ConstructorHelper(int exprIndex, RuntimeHierarchyObjReference hierarchyRoot) { this.m_hierarchyRoot = hierarchyRoot; using (this.m_hierarchyRoot.PinValue()) { RuntimeGroupRootObj runtimeGroupRootObj = this.m_hierarchyRoot.Value() as RuntimeGroupRootObj; Global.Tracer.Assert(null != runtimeGroupRootObj, "(null != groupRoot)"); List <AspNetCore.ReportingServices.ReportIntermediateFormat.ExpressionInfo> list; IndexedExprHost expressionsHost; List <bool> directions; if (ProcessingStages.Grouping == runtimeGroupRootObj.ProcessingStage) { list = runtimeGroupRootObj.GroupExpressions; expressionsHost = runtimeGroupRootObj.GroupExpressionHost; directions = runtimeGroupRootObj.GroupDirections; } else { Global.Tracer.Assert(ProcessingStages.SortAndFilter == runtimeGroupRootObj.ProcessingStage, "(ProcessingStages.SortAndFilter == groupRoot.ProcessingStage)"); list = runtimeGroupRootObj.SortExpressions; expressionsHost = runtimeGroupRootObj.SortExpressionHost; directions = runtimeGroupRootObj.SortDirections; } if (exprIndex == -1 || exprIndex >= list.Count) { this.m_hierarchyObjs = new List <IReference <RuntimeHierarchyObj> >(); RuntimeGroupLeafObjReference runtimeGroupLeafObjReference = null; IScalabilityCache tablixProcessingScalabilityCache = base.m_odpContext.TablixProcessingScalabilityCache; if (ProcessingStages.Grouping == runtimeGroupRootObj.ProcessingStage) { runtimeGroupLeafObjReference = runtimeGroupRootObj.CreateGroupLeaf(); if (!runtimeGroupRootObj.HasParent) { runtimeGroupRootObj.AddChildWithNoParent(runtimeGroupLeafObjReference); } } if ((BaseReference)null != (object)runtimeGroupLeafObjReference) { this.m_hierarchyObjs.Add(runtimeGroupLeafObjReference); } } else { this.m_expression = new RuntimeExpressionInfo(list, expressionsHost, directions, exprIndex); this.m_grouping = RuntimeGroupingObj.CreateGroupingObj(runtimeGroupRootObj.GroupingType, this, base.m_objectType); } } }
private void ProcessParent(object parentKey, IReference <RuntimeGroupLeafObj> parentObj, RuntimeGroupLeafObjReference childObj, bool addToWaitList) { if (parentObj != null) { using (parentObj.PinValue()) { parentObj.Value().AddChild(childObj); } } else { RuntimeGroupRootObj runtimeGroupRootObj = base.m_owner as RuntimeGroupRootObj; runtimeGroupRootObj.AddChild(childObj); if (addToWaitList) { ChildLeafInfo childLeafInfo = null; IDisposable disposable2 = null; try { if (this.m_parentInfo == null) { this.m_parentInfo = this.CreateParentInfo(); } else { this.m_parentInfo.TryGetAndPin(parentKey, out childLeafInfo, out disposable2); } if (childLeafInfo == null) { childLeafInfo = new ChildLeafInfo(); disposable2 = this.m_parentInfo.AddAndPin(parentKey, childLeafInfo); } childLeafInfo.Add(childObj); } finally { if (disposable2 != null) { disposable2.Dispose(); } } } } }
public void InsertToSortTree(RuntimeGroupLeafObjReference groupLeaf) { using (base.m_hierarchyRoot.PinValue()) { RuntimeGroupRootObj runtimeGroupRootObj = (RuntimeGroupRootObj)base.m_hierarchyRoot.Value(); AspNetCore.ReportingServices.ReportIntermediateFormat.Grouping grouping = runtimeGroupRootObj.HierarchyDef.Grouping; if (runtimeGroupRootObj.ProcessSecondPassSorting) { Global.Tracer.Assert(base.m_grouping != null, "(m_grouping != null)"); runtimeGroupRootObj.LastChild = groupLeaf; Global.Tracer.Assert(null != grouping, "(null != groupingDef)"); object keyValue = base.m_odpContext.ReportRuntime.EvaluateRuntimeExpression(base.m_expression, AspNetCore.ReportingServices.ReportProcessing.ObjectType.Grouping, grouping.Name, "Sort"); base.m_grouping.NextRow(keyValue); } else { Global.Tracer.Assert(runtimeGroupRootObj.HierarchyDef.HasFilters || runtimeGroupRootObj.HierarchyDef.HasInnerFilters, "(groupRoot.HierarchyDef.HasFilters || groupRoot.HierarchyDef.HasInnerFilters)"); this.AddChild(groupLeaf); } } }
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); }
public override void CopyDomainScopeGroupInstances(RuntimeGroupRootObj destination) { Global.Tracer.Assert(false, "Domain Scope should only be applied to Hash groups"); }
public override void NextRow() { bool flag = true; RuntimeGroupRootObj runtimeGroupRootObj = null; using (this.m_hierarchyRoot.PinValue()) { if (this.m_hierarchyRoot is RuntimeGroupRootObjReference) { runtimeGroupRootObj = (RuntimeGroupRootObj)this.m_hierarchyRoot.Value(); if (ProcessingStages.SortAndFilter == runtimeGroupRootObj.ProcessingStage) { flag = false; } } if (this.m_hierarchyObjs != null) { if (flag) { IReference <RuntimeHierarchyObj> reference = this.m_hierarchyObjs[0]; Global.Tracer.Assert(null != reference, "(null != hierarchyObj)"); using (reference.PinValue()) { reference.Value().NextRow(); } } else if (runtimeGroupRootObj != null) { RuntimeGroupLeafObjReference lastChild = runtimeGroupRootObj.LastChild; Global.Tracer.Assert((BaseReference)null != (object)lastChild, "(null != groupLastChild)"); this.m_hierarchyObjs.Add(lastChild); } } else if (this.m_grouping != null) { AspNetCore.ReportingServices.ReportProcessing.ObjectType objectType = runtimeGroupRootObj.HierarchyDef.DataRegionDef.ObjectType; string name = runtimeGroupRootObj.HierarchyDef.DataRegionDef.Name; string propertyName = "GroupExpression"; DomainScopeContext domainScopeContext = base.OdpContext.DomainScopeContext; DomainScopeContext.DomainScopeInfo domainScopeInfo = null; if (domainScopeContext != null) { domainScopeInfo = domainScopeContext.CurrentDomainScope; } object obj; if (domainScopeInfo != null) { domainScopeInfo.MoveNext(); obj = domainScopeInfo.CurrentKey; } else { obj = ((this.m_expression != null) ? base.m_odpContext.ReportRuntime.EvaluateRuntimeExpression(this.m_expression, objectType, name, propertyName) : ((object)base.m_odpContext.ReportObjectModel.FieldsImpl.GetRowIndex())); } if (runtimeGroupRootObj != null && flag) { AspNetCore.ReportingServices.ReportIntermediateFormat.Grouping grouping = runtimeGroupRootObj.HierarchyDef.Grouping; if (runtimeGroupRootObj.SaveGroupExprValues) { grouping.CurrentGroupExpressionValues.Add(obj); } this.MatchSortFilterScope(runtimeGroupRootObj.SelfReference, grouping, obj, this.m_expression.ExpressionIndex); } this.m_grouping.NextRow(obj); if (domainScopeInfo != null) { domainScopeInfo.MovePrevious(); } } } }
public abstract void CopyDomainScopeGroupInstances(RuntimeGroupRootObj destination);