public SerializedHierarchy(Hierarchy h) { UnfetchedMembersVisibile = h.UnfetchedMembersVisible; UniqueName = h.UniqueName; if (h.DisplayName != h.CubeHierarchy.DisplayName) { DisplayName = h.DisplayName; } if (h.TotalCaption != RadarUtils.GetResStr("rsTotalCaption")) { TotalCaption = h.TotalCaption; } SortType = h.SortType; FormatString = h.FormatString; TotalAppearance = h.TotalAppearance; AllowResort = h.AllowResort; AllowFilter = h.AllowFilter; AllowPopupOnLevelCaptions = h.AllowPopupOnLevelCaptions; AllowHierarchyEditor = h.AllowHierarchyEditor; AllowPopupOnMembers = h.AllowPopupOnMembers; AllowRegroup = h.AllowRegroup; AllowChangeTotalAppearance = h.AllowChangeTotalAppearance; Visible = h.Visible; TakeFiltersIntoCalculations = h.TakeFiltersIntoCalculations; AllowSwapMembers = h.AllowSwapMembers; AllowMultiselect = h.AllowMultiselect; OverrideSortMethods = h.OverrideSortMethods; ShowEmptyLines = h.FShowEmptyLines; if (h.FLevels != null) { var ll = h.FLevels.Select(L => new SerializedLevel(L)).ToList(); if (ll.Count > 0) { Levels = ll.ToArray(); } } }
internal EventMemberSortArgs(MembersSortType SortingMethod) { this.SortingMethod = SortingMethod; }
internal static void Sort(List <Member> members, MembersSortType ASortType) { //if (members.Count < 2) return; if (members.Count < 1) { return; } var FParentLevel = members[0].FLevel; var Grid = FParentLevel.Grid; if (members.Count > 1) { if (FParentLevel.FHierarchy != null && FParentLevel.FHierarchy.OverrideSortMethods && Grid.EventMemberSortAssigned) { members.Sort(new CustomComparer(Grid, ASortType)); } else { if (ASortType == MembersSortType.msTypeRelated) { members.Sort(new NumberComparer()); } if (ASortType == MembersSortType.msNameAsc) { members.Sort(new AlphaAscComparer()); } if (ASortType == MembersSortType.msNameDesc) { members.Sort(new AlphaDescComparer()); } } } var P = new List <Member>(); var IsSorted = true; do { IsSorted = true; var ij = -1; foreach (var m in members) { m.Children.Sort(Grid, ASortType); ij++; if (m is CustomMember && !P.Contains(m)) { if (((CustomMember)m).Position == CustomMemberPosition.cmpFirst) { members.Remove(m); members.Insert(0, m); } if (((CustomMember)m).Position == CustomMemberPosition.cmpLast) { members.Remove(m); members.Add(m); } if (((CustomMember)m).Position == CustomMemberPosition.cmpGeneralOrder) { continue; } P.Add(m); IsSorted = false; break; } } } while (!IsSorted); }
internal CustomComparer(OlapControl AGrid, MembersSortType CurrentMethod) { FGrid = AGrid; FMethod = CurrentMethod; E = new EventMemberSortArgs(CurrentMethod); }
internal void Sort(OlapControl Grid, MembersSortType ASortType) { Sort(this, ASortType); }
public SerializedLevel(Level L) { level = L; Visible = L.Visible; if (L.Filter != null) { Filter = new SerizalizedFilter(L.Filter); } SortType = L.SortType; if (L.Hierarchy.Levels.Count > 0) { var visible = new List <string>(); var unvisible = new List <string>(); foreach (var m in L.Hierarchy.Levels[0].Members) { if (m.FLevel == level) { if (m.Visible && !m.Filtered && !L.Hierarchy.UnfetchedMembersVisible) { visible.Add(m.UniqueName); } if (!m.Visible && L.Hierarchy.UnfetchedMembersVisible) { unvisible.Add(m.UniqueName); } } FillMembersList(m, visible, unvisible); } if (unvisible.Count > 0) { UnvisibleMembers = unvisible.ToArray(); } if (visible.Count > 0) { VisibleMembers = visible.ToArray(); } var va = new Dictionary <string, AttributeDispalyMode>(); foreach (var ia in L.CubeLevel.InfoAttributes) { if (ia.DisplayMode != AttributeDispalyMode.None) { va.Add(ia.DisplayName, ia.DisplayMode); } } if (va.Count > 0) { VisibleAttributes = new string[va.Count]; VisibleAttributeModes = new AttributeDispalyMode[va.Count]; va.Keys.CopyTo(VisibleAttributes, 0); va.Values.CopyTo(VisibleAttributeModes, 0); } } var lg = new List <SerializedGroupMember>(); var lc = new List <SerializedCalculatedMember>(); foreach (var m in L.FUniqueNamesArray.Values) { if (m is GroupMember) { lg.Add(new SerializedGroupMember(m as GroupMember)); } if (m is CalculatedMember) { lc.Add(new SerializedCalculatedMember(m as CalculatedMember)); } } if (lg.Count > 0) { GroupMembers = lg.ToArray(); } if (lc.Count > 0) { CalculatedMembers = lc.ToArray(); } }