public void ResolveReferences(Dictionary <AspNetCore.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType, List <MemberReference> > memberReferencesCollection, Dictionary <int, IReferenceable> referenceableItems) { List <MemberReference> list = default(List <MemberReference>); if (memberReferencesCollection.TryGetValue(EndUserSort.m_Declaration.ObjectType, out list)) { foreach (MemberReference item in list) { switch (item.MemberName) { case MemberName.DataSet: Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID)); Global.Tracer.Assert(referenceableItems[item.RefID] is DataSet); Global.Tracer.Assert(this.m_dataSet != (DataSet)referenceableItems[item.RefID]); this.m_dataSet = (DataSet)referenceableItems[item.RefID]; break; case MemberName.SortTarget: Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID)); Global.Tracer.Assert(referenceableItems[item.RefID] is ISortFilterScope); Global.Tracer.Assert(this.m_sortTarget != (ISortFilterScope)referenceableItems[item.RefID]); this.m_sortTarget = (ISortFilterScope)referenceableItems[item.RefID]; break; case MemberName.DetailScopeSubReports: if (this.m_detailScopeSubReports == null) { this.m_detailScopeSubReports = new List <SubReport>(); } Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID)); Global.Tracer.Assert(referenceableItems[item.RefID] is SubReport); Global.Tracer.Assert(!this.m_detailScopeSubReports.Contains((SubReport)referenceableItems[item.RefID])); this.m_detailScopeSubReports.Add((SubReport)referenceableItems[item.RefID]); break; case MemberName.SortExpressionScope: Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID)); Global.Tracer.Assert(referenceableItems[item.RefID] is ISortFilterScope); Global.Tracer.Assert(this.m_sortExpressionScope != (ISortFilterScope)referenceableItems[item.RefID]); this.m_sortExpressionScope = (ISortFilterScope)referenceableItems[item.RefID]; break; case MemberName.GroupsInSortTarget: if (this.m_groupsInSortTarget == null) { this.m_groupsInSortTarget = new GroupingList(); } Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID)); Global.Tracer.Assert(referenceableItems[item.RefID] is Grouping); Global.Tracer.Assert(!this.m_groupsInSortTarget.Contains((Grouping)referenceableItems[item.RefID])); this.m_groupsInSortTarget.Add((Grouping)referenceableItems[item.RefID]); break; default: Global.Tracer.Assert(false); break; } } } }
public void Add(GroupingList scopeDefs, List <object>[] scopeValues, int value) { if (scopeValues == null || scopeValues.Length == 0) { Global.Tracer.Assert(scopeDefs == null || 0 == scopeDefs.Count, "(null == scopeDefs || 0 == scopeDefs.Count)"); this.m_lookupInt = value; } else { bool flag = true; if (this.m_lookupTable == null) { this.m_lookupTable = new Hashtable(); flag = false; } Hashtable hashtable = this.m_lookupTable; int num = 0; int num2 = 0; for (int i = 0; i < scopeValues.Length; i++) { List <object> list = scopeValues[i]; if (list == null) { num2++; } else { num = list.Count; if (i == scopeValues.Length - 1) { num--; } this.GetNullScopeEntries(num2, ref hashtable, ref flag); for (int j = 0; j < num; j++) { Hashtable hashtable2 = (!flag) ? null : ((Hashtable)hashtable[list[j]]); if (hashtable2 == null) { hashtable2 = new Hashtable(); hashtable.Add(list[j], hashtable2); flag = false; } hashtable = hashtable2; } num2 = 0; } } object key = 1; if (scopeValues[scopeValues.Length - 1] != null) { key = scopeValues[scopeValues.Length - 1][num]; } else { this.GetNullScopeEntries(num2, ref hashtable, ref flag); } Global.Tracer.Assert(!hashtable.Contains(key), "(!hashEntries.Contains(lastKey))"); hashtable.Add(key, value); } }
public UserSortFilterContext(UserSortFilterContext parentContext, AspNetCore.ReportingServices.ReportIntermediateFormat.SubReport subReport) { this.m_runtimeSortFilterInfo = parentContext.RuntimeSortFilterInfo; this.m_dataSetGlobalID = parentContext.DataSetGlobalId; this.m_inProcessUserSortPhase = parentContext.m_inProcessUserSortPhase; subReport.UpdateSubReportScopes(parentContext); this.m_containingScopes = subReport.ContainingScopes; this.m_detailScopeSubReports = subReport.DetailScopeSubReports; }
public void ResetContextForTopLevelDataSet() { this.m_dataSetGlobalID = -1; this.m_currentSortFilterEventSource = null; this.m_runtimeSortFilterInfo = null; this.m_currentContainingScope = null; this.m_containingScopes = null; this.m_inProcessUserSortPhase = null; }
public void UpdateSubReportScopes(AspNetCore.ReportingServices.OnDemandProcessing.TablixProcessing.UserSortFilterContext context) { if (this.m_containingScopes != null && 0 < this.m_containingScopes.Count && this.m_containingScopes.LastEntry == null) { if (context.DetailScopeSubReports != null) { this.m_detailScopeSubReports = context.CloneDetailScopeSubReports(); } else { this.m_detailScopeSubReports = new List <SubReport>(); } this.m_detailScopeSubReports.Add(this); } else { this.m_detailScopeSubReports = context.DetailScopeSubReports; } if (context.ContainingScopes != null) { if (this.m_containingScopes != null && 0 < this.m_containingScopes.Count) { this.m_containingScopes.InsertRange(0, context.ContainingScopes); } else { this.m_containingScopes = context.ContainingScopes; } } if (this.m_report != null && this.m_report.EventSources != null) { int count = this.m_report.EventSources.Count; for (int i = 0; i < count; i++) { IInScopeEventSource inScopeEventSource = this.m_report.EventSources[i]; if (inScopeEventSource.UserSort != null) { inScopeEventSource.UserSort.DetailScopeSubReports = this.m_detailScopeSubReports; } if (this.m_containingScopes != null && 0 < this.m_containingScopes.Count) { if (inScopeEventSource.ContainingScopes != null && 0 < inScopeEventSource.ContainingScopes.Count) { inScopeEventSource.ContainingScopes.InsertRange(0, this.m_containingScopes); } else { inScopeEventSource.IsSubReportTopLevelScope = true; inScopeEventSource.ContainingScopes = this.m_containingScopes; } } } } }
public new GroupingList Clone() { int count = this.Count; GroupingList groupingList = new GroupingList(count); for (int i = 0; i < count; i++) { groupingList.Add(this[i]); } return(groupingList); }
public object PublishClone(AutomaticSubtotalContext context, ReportHierarchyNode owner) { int count = this.Count; GroupingList groupingList = new GroupingList(count); for (int i = 0; i < count; i++) { groupingList.Add(this[i].PublishClone(context, owner)); } return(groupingList); }
public override void InitializeRVDirectionDependentItems(InitializationContext context) { this.m_containingScopes = context.GetContainingScopes(); for (int i = 0; i < this.m_containingScopes.Count; i++) { this.m_containingScopes[i].SaveGroupExprValues = true; } if (this.m_isDetailScope) { this.m_containingScopes.Add(null); } }
public override void ResolveReferences(Dictionary <AspNetCore.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType, List <MemberReference> > memberReferencesCollection, Dictionary <int, IReferenceable> referenceableItems) { base.ResolveReferences(memberReferencesCollection, referenceableItems); List <MemberReference> list = default(List <MemberReference>); if (memberReferencesCollection.TryGetValue(TextBox.m_Declaration.ObjectType, out list)) { foreach (MemberReference item in list) { switch (item.MemberName) { case MemberName.ContainingScopes: if (this.m_containingScopes == null) { this.m_containingScopes = new GroupingList(); } if (item.RefID != -2) { Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID)); Global.Tracer.Assert(referenceableItems[item.RefID] is Grouping); Global.Tracer.Assert(!this.m_containingScopes.Contains((Grouping)referenceableItems[item.RefID])); this.m_containingScopes.Add((Grouping)referenceableItems[item.RefID]); } else { this.m_containingScopes.Add(null); } break; case MemberName.RecursiveMember: { IReferenceable referenceable = default(IReferenceable); if (referenceableItems.TryGetValue(item.RefID, out referenceable)) { this.m_recursiveMember = (referenceable as TablixMember); } break; } default: Global.Tracer.Assert(false); break; } } } }
public int Lookup(GroupingList scopeDefs, List <object>[] scopeValues) { object obj = null; if (scopeValues == null || scopeValues.Length == 0) { Global.Tracer.Assert(scopeDefs == null || 0 == scopeDefs.Count, "(null == scopeDefs || 0 == scopeDefs.Count)"); obj = this.m_lookupInt; } else { Hashtable hashtable = this.m_lookupTable; int num = 0; for (int i = 0; i < scopeValues.Length; i++) { List <object> list = scopeValues[i]; if (list == null) { num++; } else { hashtable = (Hashtable)hashtable[num]; for (int j = 0; j < list.Count; j++) { obj = hashtable[list[j]]; if (i < scopeValues.Length - 1 || j < list.Count - 1) { hashtable = (Hashtable)obj; Global.Tracer.Assert(null != hashtable, "(null != hashEntries)"); } } num = 0; } } if (scopeValues[scopeValues.Length - 1] == null) { hashtable = (Hashtable)hashtable[num]; obj = hashtable[1]; } } Global.Tracer.Assert(obj is int, "(value is int)"); return((int)obj); }
public void Deserialize(IntermediateFormatReader reader) { reader.RegisterDeclaration(EndUserSort.m_Declaration); while (reader.NextMember()) { switch (reader.CurrentMember.MemberName) { case MemberName.DataSet: this.m_dataSet = reader.ReadReference <DataSet>(this); break; case MemberName.SortExpressionScope: this.m_sortExpressionScope = reader.ReadReference <ISortFilterScope>(this); break; case MemberName.GroupsInSortTarget: this.m_groupsInSortTarget = reader.ReadListOfReferences <GroupingList, Grouping>(this); break; case MemberName.SortTarget: this.m_sortTarget = reader.ReadReference <ISortFilterScope>(this); break; case MemberName.SortExpressionIndex: this.m_sortExpressionIndex = reader.ReadInt32(); break; case MemberName.DetailScopeSubReports: this.m_detailScopeSubReports = reader.ReadGenericListOfReferences <SubReport>(this); break; default: Global.Tracer.Assert(false); break; } } }
public bool PopulateRuntimeSortFilterEventInfo(OnDemandProcessingContext odpContext, AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet myDataSet) { if (odpContext.TopLevelContext.UserSortFilterInfo != null && odpContext.TopLevelContext.UserSortFilterInfo.OdpSortInfo != null && odpContext.TopLevelContext.OldSortFilterEventInfo != null) { if (-1 != this.m_dataSetGlobalID) { return(false); } this.m_runtimeSortFilterInfo = null; EventInformation.OdpSortEventInfo odpSortInfo = odpContext.TopLevelContext.UserSortFilterInfo.OdpSortInfo; for (int i = 0; i < odpSortInfo.Count; i++) { string uniqueNameAt = odpSortInfo.GetUniqueNameAt(i); AspNetCore.ReportingServices.ReportIntermediateFormat.SortFilterEventInfo sortFilterEventInfo = odpContext.TopLevelContext.OldSortFilterEventInfo[uniqueNameAt]; if (sortFilterEventInfo != null && sortFilterEventInfo.EventSource.UserSort != null) { int num = sortFilterEventInfo.EventSource.UserSort.SubReportDataSetGlobalId; if (-1 == num) { num = sortFilterEventInfo.EventSource.UserSort.DataSet.GlobalID; } if (num == myDataSet.GlobalID) { if (this.m_runtimeSortFilterInfo == null) { this.m_runtimeSortFilterInfo = new List <IReference <RuntimeSortFilterEventInfo> >(); } RuntimeSortFilterEventInfo runtimeSortFilterEventInfo = new RuntimeSortFilterEventInfo(sortFilterEventInfo.EventSource, uniqueNameAt, odpSortInfo.GetSortDirectionAt(i), sortFilterEventInfo.EventSourceScopeInfo, odpContext, (this.m_currentContainingScope == null) ? 1 : this.m_currentContainingScope.Value().Depth); runtimeSortFilterEventInfo.SelfReference.UnPinValue(); this.m_runtimeSortFilterInfo.Add(runtimeSortFilterEventInfo.SelfReference); } } } if (this.m_runtimeSortFilterInfo != null) { int count = this.m_runtimeSortFilterInfo.Count; for (int j = 0; j < count; j++) { IReference <RuntimeSortFilterEventInfo> reference = this.m_runtimeSortFilterInfo[j]; using (reference.PinValue()) { RuntimeSortFilterEventInfo runtimeSortFilterEventInfo2 = reference.Value(); IInScopeEventSource eventSource = runtimeSortFilterEventInfo2.EventSource; AspNetCore.ReportingServices.ReportIntermediateFormat.ISortFilterScope sortExpressionScope = eventSource.UserSort.SortExpressionScope; if (sortExpressionScope != null) { sortExpressionScope.IsSortFilterExpressionScope = this.SetSortFilterInfo(sortExpressionScope.IsSortFilterExpressionScope, count, j); } AspNetCore.ReportingServices.ReportIntermediateFormat.ISortFilterScope sortTarget = eventSource.UserSort.SortTarget; if (sortTarget != null) { sortTarget.IsSortFilterTarget = this.SetSortFilterInfo(sortTarget.IsSortFilterTarget, count, j); } if (eventSource.ContainingScopes != null && 0 < eventSource.ContainingScopes.Count) { int num2 = 0; int num3 = 0; for (int k = 0; k < eventSource.ContainingScopes.Count; k++) { AspNetCore.ReportingServices.ReportIntermediateFormat.Grouping grouping = eventSource.ContainingScopes[k]; if (grouping == null || !grouping.IsDetail) { List <object> list = runtimeSortFilterEventInfo2.SortSourceScopeInfo[num2]; if (grouping != null) { if (grouping.SortFilterScopeInfo == null) { grouping.SortFilterScopeInfo = new List <object> [count]; for (int l = 0; l < count; l++) { grouping.SortFilterScopeInfo[l] = null; } grouping.SortFilterScopeIndex = new int[count]; for (int m = 0; m < count; m++) { grouping.SortFilterScopeIndex[m] = -1; } } grouping.SortFilterScopeInfo[j] = list; grouping.SortFilterScopeIndex[j] = num2; } else { List <AspNetCore.ReportingServices.ReportIntermediateFormat.SubReport> detailScopeSubReports = eventSource.UserSort.DetailScopeSubReports; AspNetCore.ReportingServices.ReportIntermediateFormat.ReportItem reportItem = (detailScopeSubReports == null || num3 >= detailScopeSubReports.Count) ? eventSource.Parent : detailScopeSubReports[num3++].Parent; while (reportItem != null && !reportItem.IsDataRegion) { reportItem = reportItem.Parent; } Global.Tracer.Assert(reportItem.IsDataRegion, "(parent.IsDataRegion)"); AspNetCore.ReportingServices.ReportIntermediateFormat.DataRegion dataRegion = (AspNetCore.ReportingServices.ReportIntermediateFormat.DataRegion)reportItem; if (dataRegion.SortFilterSourceDetailScopeInfo == null) { dataRegion.SortFilterSourceDetailScopeInfo = new int[count]; for (int n = 0; n < count; n++) { dataRegion.SortFilterSourceDetailScopeInfo[n] = -1; } } Global.Tracer.Assert(list != null && 1 == list.Count, "(null != scopeValues && 1 == scopeValues.Count)"); dataRegion.SortFilterSourceDetailScopeInfo[j] = (int)list[0]; } num2++; } } } AspNetCore.ReportingServices.ReportIntermediateFormat.GroupingList groupsInSortTarget = eventSource.UserSort.GroupsInSortTarget; if (groupsInSortTarget != null) { for (int num5 = 0; num5 < groupsInSortTarget.Count; num5++) { groupsInSortTarget[num5].NeedScopeInfoForSortFilterExpression = this.SetSortFilterInfo(groupsInSortTarget[num5].NeedScopeInfoForSortFilterExpression, count, j); } } List <int> peerSortFilters = eventSource.GetPeerSortFilters(false); if (peerSortFilters != null && peerSortFilters.Count != 0) { if (runtimeSortFilterEventInfo2.PeerSortFilters == null) { runtimeSortFilterEventInfo2.PeerSortFilters = new Hashtable(); } for (int num6 = 0; num6 < peerSortFilters.Count; num6++) { if (eventSource.ID != peerSortFilters[num6]) { runtimeSortFilterEventInfo2.PeerSortFilters.Add(peerSortFilters[num6], null); } } } } } } return(true); } return(false); }
public override void Deserialize(IntermediateFormatReader reader) { base.Deserialize(reader); reader.RegisterDeclaration(SubReport.m_Declaration); while (reader.NextMember()) { switch (reader.CurrentMember.MemberName) { case MemberName.Parameters: this.m_parameters = reader.ReadGenericListOfRIFObjects <ParameterValue>(); break; case MemberName.NoRowsMessage: this.m_noRowsMessage = (ExpressionInfo)reader.ReadRIFObject(); break; case MemberName.MergeTransactions: this.m_mergeTransactions = reader.ReadBoolean(); break; case MemberName.ContainingScopes: if (reader.ReadListOfReferencesNoResolution(this) == 0) { this.m_containingScopes = new GroupingList(); } break; case MemberName.IsTablixCellScope: this.m_isTablixCellScope = reader.ReadBoolean(); break; case MemberName.ReportName: this.m_reportName = reader.ReadString(); break; case MemberName.OmitBorderOnPageBreak: this.m_omitBorderOnPageBreak = reader.ReadBoolean(); break; case MemberName.KeepTogether: this.m_keepTogether = reader.ReadBoolean(); break; case MemberName.Location: this.m_location = (AspNetCore.ReportingServices.ReportPublishing.LocationFlags)reader.ReadEnum(); break; case MemberName.IndexInCollection: this.m_indexInCollection = reader.ReadInt32(); break; case MemberName.ContainingSection: this.m_containingSection = reader.ReadReference <ReportSection>(this); break; default: Global.Tracer.Assert(false); break; } } }
public override void Deserialize(IntermediateFormatReader reader) { base.Deserialize(reader); reader.RegisterDeclaration(TextBox.m_Declaration); while (reader.NextMember()) { switch (reader.CurrentMember.MemberName) { case MemberName.Paragraphs: this.m_paragraphs = reader.ReadGenericListOfRIFObjects <Paragraph>(); break; case MemberName.Value: { TextRun orCreateSingleTextRun2 = this.GetOrCreateSingleTextRun(reader); ExpressionInfo expressionInfo = (ExpressionInfo)reader.ReadRIFObject(); this.m_hasValue = true; this.m_hasExpressionBasedValue = expressionInfo.IsExpression; orCreateSingleTextRun2.Value = expressionInfo; if (base.m_styleClass != null) { orCreateSingleTextRun2.Paragraph.StyleClass = new ParagraphFilteredStyle(base.m_styleClass); orCreateSingleTextRun2.StyleClass = new TextRunFilteredStyle(base.m_styleClass); base.m_styleClass = new TextBoxFilteredStyle(base.m_styleClass); } break; } case MemberName.CanScrollVertically: this.m_canScrollVertically = reader.ReadBoolean(); break; case MemberName.CanGrow: this.m_canGrow = reader.ReadBoolean(); break; case MemberName.CanShrink: this.m_canShrink = reader.ReadBoolean(); break; case MemberName.HideDuplicates: this.m_hideDuplicates = reader.ReadString(); break; case MemberName.Action: this.m_action = (Action)reader.ReadRIFObject(); break; case MemberName.IsToggle: this.m_isToggle = reader.ReadBoolean(); break; case MemberName.InitialToggleState: this.m_initialToggleState = (ExpressionInfo)reader.ReadRIFObject(); break; case MemberName.ValueReferenced: this.m_valueReferenced = reader.ReadBoolean(); break; case MemberName.TextRunValueReferenced: this.m_textRunValueReferenced = reader.ReadBoolean(); break; case MemberName.RecursiveSender: this.m_recursiveSender = reader.ReadBoolean(); break; case MemberName.DataElementStyleAttribute: this.m_dataElementStyleAttribute = reader.ReadBoolean(); break; case MemberName.ContainingScopes: if (reader.ReadListOfReferencesNoResolution(this) == 0) { this.m_containingScopes = new GroupingList(); } break; case MemberName.UserSort: this.m_userSort = (EndUserSort)reader.ReadRIFObject(); break; case MemberName.IsTablixCellScope: this.m_isTablixCellScope = reader.ReadBoolean(); break; case MemberName.IsSubReportTopLevelScope: this.m_isSubReportTopLevelScope = reader.ReadBoolean(); break; case MemberName.DataType: { TextRun orCreateSingleTextRun = this.GetOrCreateSingleTextRun(reader); orCreateSingleTextRun.DataType = (DataType)reader.ReadEnum(); break; } case MemberName.KeepTogether: this.m_keepTogether = reader.ReadBoolean(); break; case MemberName.SequenceID: this.m_sequenceID = reader.ReadInt32(); break; case MemberName.RecursiveMember: this.m_recursiveMember = reader.ReadReference <TablixMember>(this); break; case MemberName.HasExpressionBasedValue: this.m_hasExpressionBasedValue = reader.ReadBoolean(); break; case MemberName.HasValue: this.m_hasValue = reader.ReadBoolean(); break; case MemberName.IsSimple: this.m_isSimple = reader.ReadBoolean(); break; case MemberName.HasNonRecursiveSender: this.m_hasNonRecursiveSender = reader.ReadBoolean(); break; default: Global.Tracer.Assert(false); break; } } }