internal RuntimeGroupLeafObjReference CreateGroupLeaf() { RuntimeGroupLeafObj runtimeGroupLeafObj = null; switch (base.ObjectType) { case Microsoft.ReportingServices.ReportProcessing.ObjectType.Tablix: runtimeGroupLeafObj = new RuntimeTablixGroupLeafObj((RuntimeDataTablixGroupRootObjReference)base.SelfReference, base.ObjectType); break; case Microsoft.ReportingServices.ReportProcessing.ObjectType.GaugePanel: case Microsoft.ReportingServices.ReportProcessing.ObjectType.Chart: case Microsoft.ReportingServices.ReportProcessing.ObjectType.CustomReportItem: case Microsoft.ReportingServices.ReportProcessing.ObjectType.MapDataRegion: runtimeGroupLeafObj = new RuntimeChartCriGroupLeafObj((RuntimeDataTablixGroupRootObjReference)base.SelfReference, base.ObjectType); break; default: Global.Tracer.Assert(condition: false, "Invalid ObjectType"); break; } RuntimeGroupLeafObjReference obj = (RuntimeGroupLeafObjReference)runtimeGroupLeafObj.SelfReference; obj.UnPinValue(); return(obj); }
private void ProcessChildren(object thisKey, IReference <RuntimeGroupLeafObj> parentObj, IReference <RuntimeGroupLeafObj> thisObj) { ChildLeafInfo value = null; if (m_parentInfo != null) { m_parentInfo.TryGetValue(thisKey, out value); } if (value == null) { return; } for (int i = 0; i < value.Count; i++) { RuntimeGroupLeafObjReference runtimeGroupLeafObjReference = value[i]; using (runtimeGroupLeafObjReference.PinValue()) { RuntimeGroupLeafObj runtimeGroupLeafObj = runtimeGroupLeafObjReference.Value(); bool flag = false; IReference <RuntimeGroupObj> reference = parentObj as IReference <RuntimeGroupObj>; while (reference != null && !flag) { RuntimeGroupLeafObj runtimeGroupLeafObj2 = reference.Value() as RuntimeGroupLeafObj; if (runtimeGroupLeafObj2 == runtimeGroupLeafObj) { flag = true; } reference = runtimeGroupLeafObj2?.Parent; } if (!flag) { runtimeGroupLeafObj.RemoveFromParent((RuntimeGroupRootObjReference)m_owner.SelfReference); using (thisObj.PinValue()) { thisObj.Value().AddChild(runtimeGroupLeafObjReference); } } } } m_parentInfo.Remove(thisKey); }
private void ProcessChildren(object thisKey, IReference <RuntimeGroupLeafObj> parentObj, IReference <RuntimeGroupLeafObj> thisObj) { ChildLeafInfo childLeafInfo = null; if (this.m_parentInfo != null) { this.m_parentInfo.TryGetValue(thisKey, out childLeafInfo); } if (childLeafInfo != null) { for (int i = 0; i < childLeafInfo.Count; i++) { RuntimeGroupLeafObjReference runtimeGroupLeafObjReference = ((List <RuntimeGroupLeafObjReference>)childLeafInfo)[i]; using (runtimeGroupLeafObjReference.PinValue()) { RuntimeGroupLeafObj runtimeGroupLeafObj = runtimeGroupLeafObjReference.Value(); bool flag = false; IReference <RuntimeGroupObj> reference = parentObj as IReference <RuntimeGroupObj>; while (reference != null && !flag) { RuntimeGroupLeafObj runtimeGroupLeafObj2 = reference.Value() as RuntimeGroupLeafObj; if (runtimeGroupLeafObj2 == runtimeGroupLeafObj) { flag = true; } reference = ((runtimeGroupLeafObj2 != null) ? runtimeGroupLeafObj2.Parent : null); } if (!flag) { runtimeGroupLeafObj.RemoveFromParent((RuntimeGroupRootObjReference)base.m_owner.SelfReference); using (thisObj.PinValue()) { thisObj.Value().AddChild(runtimeGroupLeafObjReference); } } } } this.m_parentInfo.Remove(thisKey); } }
internal void AddChild(RuntimeGroupLeafObjReference child) { if (null != m_lastChild) { using (m_lastChild.PinValue()) { m_lastChild.Value().NextLeaf = child; } } else { m_firstChild = child; } using (child.PinValue()) { RuntimeGroupLeafObj runtimeGroupLeafObj = child.Value(); runtimeGroupLeafObj.PrevLeaf = m_lastChild; runtimeGroupLeafObj.NextLeaf = null; runtimeGroupLeafObj.Parent = (RuntimeGroupObjReference)m_selfReference; } m_lastChild = child; }
public void AddChild(RuntimeGroupLeafObjReference child) { if ((BaseReference)null != (object)this.m_lastChild) { using (this.m_lastChild.PinValue()) { this.m_lastChild.Value().NextLeaf = child; } } else { this.m_firstChild = child; } using (child.PinValue()) { RuntimeGroupLeafObj runtimeGroupLeafObj = child.Value(); runtimeGroupLeafObj.PrevLeaf = this.m_lastChild; runtimeGroupLeafObj.NextLeaf = null; runtimeGroupLeafObj.Parent = (RuntimeGroupObjReference)base.m_selfReference; } this.m_lastChild = child; }
private void FinishFilters(AggregateUpdateContext context) { if (m_filterInfo == null) { return; } FilterInfo filterInfo = m_filterInfo; m_filterInfo = null; m_startFilterIndex = m_currentSpecialFilterIndex + 1; bool flag = m_startFilterIndex >= m_filters.Count; TrimInstanceSet(filterInfo); IEnumerator <object> instances = filterInfo.Instances; if (instances != null) { try { Microsoft.ReportingServices.ReportProcessing.ReportProcessing.IFilterOwner filterOwner; if (m_owner != null) { m_owner.PinValue(); filterOwner = m_owner.Value(); } else { filterOwner = m_ownerObj; } while (instances.MoveNext()) { object current = instances.Current; if (FilterTypes.GroupFilter == m_filterType) { IReference <RuntimeGroupLeafObj> reference = (IReference <RuntimeGroupLeafObj>)current; using (reference.PinValue()) { RuntimeGroupLeafObj runtimeGroupLeafObj = reference.Value(); runtimeGroupLeafObj.SetupEnvironment(); if (flag || PassFilters(current)) { runtimeGroupLeafObj.PostFilterNextRow(context); } else { runtimeGroupLeafObj.FailFilter(); } } } else { ((DataFieldRow)current).SetFields(m_processingContext.ReportObjectModel.FieldsImpl); if (flag || PassFilters(current)) { filterOwner.PostFilterNextRow(); } } } } finally { if (m_owner != null) { m_owner.UnPinValue(); } } } filterInfo.RemoveAll(); filterInfo = null; FinishFilters(context); }
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 IHierarchyObj CreateDetailSortHierarchyObj(RuntimeGroupLeafObj rootSortDetailLeafObj) { Global.Tracer.Assert(m_detailUserSortTargetInfo != null, "(null != m_detailUserSortTargetInfo)"); return(new RuntimeSortHierarchyObj(this, base.Depth)); }