public static DrillAction FromString(OlapControl grid, string str) { var da = new DrillAction(); var sb = str.Split(new[] { __MAIN_SEP }, StringSplitOptions.None); da.Level = grid.Dimensions.FindLevel(sb[0]); da.ParentLevel = grid.Dimensions.FindLevel(sb[1]); if (da.Level == null || da.ParentLevel == null) { return(null); } var m = sb[2].Split(new[] { __INNER_SEP }, StringSplitOptions.None); foreach (var s in m) { #if DEBUG if (s == "[Product].[All Products].[Drink].[Alcoholic Beverages]") { } #endif if (string.IsNullOrEmpty(s)) { continue; } var member = grid.FindMemberByName(s); if (member == null) { var tm = grid.Measures.Find(s); if (tm == null) { return(null); } member = tm.Member; if (member == null) { return(null); } } da.Members.AddLast(member); } m = sb[3].Split(new[] { __INNER_SEP }, StringSplitOptions.None); if (da.IsAllDrilled) { da.DrillUps = new HashSet <Member>(); } foreach (var s in m) { if (string.IsNullOrEmpty(s)) { continue; } var member = grid.FindMemberByName(s); if (member == null) { member = grid.Measures.Find(s).Member; if (member == null) { return(null); } } if (da.DrillUps == null) { da.DrillUps = new HashSet <Member>(); } da.DrillUps.Add(member); } return(da); }
/// <summary> /// Searches for the hierarchy member by its name in all initialized Grid /// hierarchies. /// </summary> public Member Member(string MemberName) { return(fGrid.FindMemberByName(MemberName)); }