List <int> IInScopeEventSource.GetPeerSortFilters(bool create) { EndUserSort userSort = ((IInScopeEventSource)this).UserSort; if (userSort == null) { return(null); } InScopeSortFilterHashtable inScopeSortFilterHashtable = null; List <int> list = null; if (((IInScopeEventSource)this).ContainingScopes == null || ((IInScopeEventSource)this).ContainingScopes.Count == 0 || ((IInScopeEventSource)this).IsSubReportTopLevelScope) { inScopeSortFilterHashtable = ((IInScopeEventSource)this).GetSortFiltersInScope(create, inDetail: false); } else { Grouping lastEntry = ((IInScopeEventSource)this).ContainingScopes.LastEntry; if (lastEntry == null) { inScopeSortFilterHashtable = ((IInScopeEventSource)this).GetSortFiltersInScope(create, inDetail: true); } else if (userSort.SortExpressionScope == null) { if (lastEntry.DetailSortFiltersInScope == null && create) { lastEntry.DetailSortFiltersInScope = new InScopeSortFilterHashtable(); } inScopeSortFilterHashtable = lastEntry.DetailSortFiltersInScope; } else { if (lastEntry.NonDetailSortFiltersInScope == null && create) { lastEntry.NonDetailSortFiltersInScope = new InScopeSortFilterHashtable(); } inScopeSortFilterHashtable = lastEntry.NonDetailSortFiltersInScope; } } if (inScopeSortFilterHashtable != null) { int num = (userSort.SortExpressionScope == null) ? userSort.SortTarget.ID : userSort.SortExpressionScope.ID; list = inScopeSortFilterHashtable[num]; if (list == null && create) { list = new List <int>(); inScopeSortFilterHashtable.Add(num, list); } } return(list); }
InScopeSortFilterHashtable IInScopeEventSource.GetSortFiltersInScope(bool create, bool inDetail) { InScopeSortFilterHashtable inScopeSortFilterHashtable = null; ReportItem parent = ((IInScopeEventSource)this).Parent; if (inDetail) { while (parent != null && !parent.IsDataRegion) { parent = parent.Parent; } } else { while (parent != null && !(parent is Report)) { parent = parent.Parent; } } Global.Tracer.Assert(parent.IsDataRegion || parent is Report, "(parent.IsDataRegion || parent is Report)"); if (parent is Report) { Report report = (Report)parent; if (((IInScopeEventSource)this).UserSort.SortExpressionScope == null) { if (report.DetailSortFiltersInScope == null && create) { report.DetailSortFiltersInScope = new InScopeSortFilterHashtable(); } return(report.DetailSortFiltersInScope); } if (report.NonDetailSortFiltersInScope == null && create) { report.NonDetailSortFiltersInScope = new InScopeSortFilterHashtable(); } return(report.NonDetailSortFiltersInScope); } Global.Tracer.Assert(((IInScopeEventSource)this).UserSort.SortExpressionScope == null, "(null == eventSource.UserSort.SortExpressionScope)"); DataRegion dataRegion = (DataRegion)parent; if (dataRegion.DetailSortFiltersInScope == null && create) { dataRegion.DetailSortFiltersInScope = new InScopeSortFilterHashtable(); } return(dataRegion.DetailSortFiltersInScope); }
public void Deserialize(IntermediateFormatReader reader) { reader.RegisterDeclaration(m_Declaration); while (reader.NextMember()) { switch (reader.CurrentMember.MemberName) { case MemberName.Name: m_name = reader.ReadString(); break; case MemberName.ID: m_ID = reader.ReadInt32(); break; case MemberName.GroupExpressions: m_groupExpressions = reader.ReadGenericListOfRIFObjects <ExpressionInfo>(); break; case MemberName.GroupLabel: m_groupLabel = (ExpressionInfo)reader.ReadRIFObject(); break; case MemberName.SortDirections: m_sortDirections = reader.ReadListOfPrimitives <bool>(); break; case MemberName.PageBreakLocation: m_pageBreak = new PageBreak(); m_pageBreak.BreakLocation = (PageBreakLocation)reader.ReadEnum(); break; case MemberName.Aggregates: m_aggregates = reader.ReadGenericListOfRIFObjects <DataAggregateInfo>(); break; case MemberName.GroupAndSort: m_groupAndSort = reader.ReadBoolean(); break; case MemberName.Filters: m_filters = reader.ReadGenericListOfRIFObjects <Filter>(); break; case MemberName.ReportItemsWithHideDuplicates: m_reportItemsWithHideDuplicates = reader.ReadGenericListOfReferences <ReportItem>(this); break; case MemberName.Parent: m_parent = reader.ReadGenericListOfRIFObjects <ExpressionInfo>(); break; case MemberName.RecursiveAggregates: m_recursiveAggregates = reader.ReadGenericListOfRIFObjects <DataAggregateInfo>(); break; case MemberName.PostSortAggregates: m_postSortAggregates = reader.ReadGenericListOfRIFObjects <DataAggregateInfo>(); break; case MemberName.DataElementName: m_dataElementName = reader.ReadString(); break; case MemberName.DataElementOutput: m_dataElementOutput = (DataElementOutputTypes)reader.ReadEnum(); break; case MemberName.SaveGroupExprValues: m_saveGroupExprValues = reader.ReadBoolean(); break; case MemberName.UserSortExpressions: m_userSortExpressions = reader.ReadGenericListOfRIFObjects <ExpressionInfo>(); break; case MemberName.NonDetailSortFiltersInScope: m_nonDetailSortFiltersInScope = reader.ReadInt32PrimitiveListHashtable <InScopeSortFilterHashtable, int>(); break; case MemberName.DetailSortFiltersInScope: m_detailSortFiltersInScope = reader.ReadInt32PrimitiveListHashtable <InScopeSortFilterHashtable, int>(); break; case MemberName.Variables: m_variables = reader.ReadGenericListOfRIFObjects <Variable>(); break; case MemberName.PageBreak: m_pageBreak = (PageBreak)reader.ReadRIFObject(); break; case MemberName.PageName: m_pageName = (ExpressionInfo)reader.ReadRIFObject(); break; case MemberName.DomainScope: m_domainScope = reader.ReadString(); break; case MemberName.ScopeIDForDomainScope: m_scopeIDForDomainScope = reader.ReadInt32(); break; case MemberName.NaturalGroup: m_naturalGroup = reader.ReadBoolean(); break; default: Global.Tracer.Assert(condition: false); break; } } }