private void RecursiveRemoveMembers(SchemaMembers smems, bool isAggr, ref SortedList ReAddDataMembers) { for (int i = 0; i < smems.Count; i++) { SchemaMember smem = smems[i]; // attempt to remove if (isAggr) { if (smem.UniqueName != smem.Hierarchy.FilterMember.UniqueName) { MembersAggregate filtMem = (MembersAggregate)smem.Hierarchy.FilterMember; // check if readd Member mem = (Member)filtMem.Members[smem.UniqueName]; if (mem != null) { ReAddDataMembers.Add(mem.UniqueName, mem); } //remove filtMem.RemoveMember(smem.UniqueName); } } else { // check if readd Member mem = smem.Hierarchy.DataMembers[smem.UniqueName]; if (mem != null) { ReAddDataMembers.Add(mem.UniqueName, mem); } //remove smem.Hierarchy.RemoveMember(smem); } if (smem.IsOpen) { this.RecursiveRemoveMembers(smem.Children, isAggr, ref ReAddDataMembers); } } }
private void RecursiveRemoveMembers(SchemaMembers smems, bool isAggr, ref SortedList ReAddDataMembers) { for(int i=0;i<smems.Count;i++) { SchemaMember smem=smems[i]; // attempt to remove if(isAggr) { if(smem.UniqueName!=smem.Hierarchy.FilterMember.UniqueName) { MembersAggregate filtMem=(MembersAggregate)smem.Hierarchy.FilterMember; // check if readd Member mem=(Member)filtMem.Members[smem.UniqueName]; if(mem!=null) ReAddDataMembers.Add(mem.UniqueName, mem); //remove filtMem.RemoveMember(smem.UniqueName); } } else { // check if readd Member mem=smem.Hierarchy.DataMembers[smem.UniqueName]; if(mem!=null) ReAddDataMembers.Add(mem.UniqueName, mem); //remove smem.Hierarchy.RemoveMember(smem); } if(smem.IsOpen) this.RecursiveRemoveMembers(smem.Children, isAggr, ref ReAddDataMembers); } }
//private bool _isAggregated=false; internal Hierarchy(Dimension dim) { _dimension=dim; _dataMembers=new DataMembers(this); _dataMembers.SetCollectionType(typeof(DataMember), false); // allowed only DataMembers , not even inherited _calcMembers=new CalculatedMembers(this); _schemaMembers=new SchemaMembers(this, null); _dataMembers.BeforeAdd+=new ObjectEventHandler(_dataMembers_BeforeAdd); _dataMembers.BeforeRemove+=new ObjectEventHandler(_dataMembers_BeforeRemove); _dataMembers.BeforeChangeItem+=new ObjectEventHandler(_dataMembers_BeforeChange); _calcMembers.BeforeAdd+=new ObjectEventHandler(_calcMembers_BeforeAdd); _calcMembers.BeforeRemove+=new ObjectEventHandler(_calcMembers_BeforeRemove); _calcMembers.BeforeChangeItem+=new ObjectEventHandler(_calcMembers_BeforeChange); }
public SchemaMembers GetSchemaMembers(Hierarchy hier, string[] UniqueNames) { System.Xml.XmlElement parentEl=GetSchemaMembers(UniqueNames); SchemaMembers smems=new SchemaMembers(hier, null); foreach(System.Xml.XmlElement childEl in parentEl.ChildNodes) { SchemaMember child=new SchemaMember(hier); child.LoadFromXmlSchema(childEl); smems.Add(child, false); } return smems; }