//public override event EventHandler BeforeChange; internal CalculatedMember(string name, Hierarchy hier) : base(hier) { _mdxParameters.BeforeAdd+=new ObjectEventHandler(this.OnBeforeAddParameter); _mdxParameters.BeforeRemove+=new ObjectEventHandler(this.OnBeforeRemoveParameter); _mdxParameters.BeforeChangeItem+=new ObjectEventHandler(this.OnBeforeChangeParameter); }
public DataMember GetByHierarchy(Hierarchy hier) { foreach(DataMember mem in this) if(mem.BelongsTo(hier)) return mem; return null; }
public MemberWrapper(string Name, Hierarchy HostHier, Member SourceMember) : base(Name, HostHier) { if(SourceMember is Set) throw new ArgumentException("Invalid parameter: Set"); _mdxParameters.Add(SourceMember, false); Initialize(Name); }
public void LoadFromXmlSchema(System.Xml.XmlElement xmlEl, Axis axis) { _uniqueName=xmlEl.GetAttribute("UN"); _name=xmlEl.GetAttribute("N"); _isOpen=(xmlEl.GetAttribute("O")=="1"?true:false); //hierarchies foreach(System.Xml.XmlElement hierEl in xmlEl.ChildNodes) { Hierarchy hier=new Hierarchy(this); hier.LoadFromXmlSchema(hierEl ); hier.Axis=axis; this.Hierarchies.Add(hier); } Schema.Dimensions.Add(this, false); }
private void AddHierRow(Hierarchy hier) { TableRow tr1=new TableRow(); TableCell td1= new TableCell(); td1.CssClass="tbl1_H"; td1.Wrap=false; Button btn=new Button(); btn.ToolTip="Set Default Filter"; btn.ID="slc_del:" + hier.UniqueName;//hierIdentifier; btn.CssClass="sel_del"; td1.Controls.Add(btn); Label lbl=new Label(); lbl.Text=hier.DisplayName; td1.Controls.Add(lbl); tr1.Cells.Add(td1); tblSlice.Rows.Add(tr1); }
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; }
public SchemaMembers GetMemberParentWithSiblings(Hierarchy hier, string MemUniqueName) { SchemaMember smem=new SchemaMember(hier); System.Xml.XmlElement parentEl=GetMemberParentWithSiblings(hier.UniqueName, MemUniqueName); smem.LoadChildrenFromXmlSchema(parentEl); return smem.Children; }
//public override event EventHandler BeforeChange; internal CalculatedMember(string name, Hierarchy hier) : base(hier) { _mdxParameters.BeforeAdd += new ObjectEventHandler(this.OnBeforeAddParameter); _mdxParameters.BeforeRemove += new ObjectEventHandler(this.OnBeforeRemoveParameter); _mdxParameters.BeforeChangeItem += new ObjectEventHandler(this.OnBeforeChangeParameter); }
private void CreateHierControls(Hierarchy hier , HtmlTableCell td) { string hierName=hier.UniqueName; Button btn; Literal lit=new Literal(); lit.Text=hierName; td.Controls.Add(lit); // visual avg button btn=new Button(); if(HasAggragate(hier, VisualAggregate.AggregateFunction.AVG)) { btn.ToolTip="Remove Avg"; btn.ID="tbl_avg:off:"+ hierName; btn.CssClass="tbl_avg_on"; } else { btn.ToolTip="Add Avg"; btn.ID="tbl_avg:on:"+ hierName; btn.CssClass="tbl_avg_off"; } td.Controls.Add(btn); // visual sum button btn=new Button(); if(HasAggragate(hier, VisualAggregate.AggregateFunction.SUM)) { btn.ToolTip="Remove Sum"; btn.ID="tbl_sum:off:"+ hierName; btn.CssClass="tbl_sum_on"; } else { btn.ToolTip="Add Sum"; btn.ID="tbl_sum:on:"+ hierName; btn.CssClass="tbl_sum_off"; } td.Controls.Add(btn); // visual min button btn=new Button(); if(HasAggragate(hier, VisualAggregate.AggregateFunction.MIN)) { btn.ToolTip="Remove Min"; btn.ID="tbl_min:off:"+ hierName; btn.CssClass="tbl_min_on"; } else { btn.ToolTip="Add Min"; btn.ID="tbl_min:on:"+ hierName; btn.CssClass="tbl_min_off"; } td.Controls.Add(btn); // visual avg button btn=new Button(); if(HasAggragate(hier, VisualAggregate.AggregateFunction.MAX)) { btn.ToolTip="Remove Max"; btn.ID="tbl_max:off:"+ hierName; btn.CssClass="tbl_max_on"; } else { btn.ToolTip="Add Max"; btn.ID="tbl_max:on:"+ hierName; btn.CssClass="tbl_max_off"; } td.Controls.Add(btn); }
internal Level(Hierarchy hier) { _hierarchy = hier; }
public void MoveUp(Hierarchy Hierarchy) { int index=this.IndexOf(Hierarchy.UniqueName); if(index==-1 || index==0) return; this.RemoveAt(index); this.Insert(index-1,Hierarchy); }
public static DataMember GetFromXml(Hierarchy hier, XmlElement xmlEl) { if (xmlEl.GetAttribute("C") == "1") //calculated member { string calcType = xmlEl.GetAttribute("T"); if (calcType == MembersAggregate.TypeString) { return(new MembersAggregate(hier, xmlEl)); } else if (calcType == VisualAggregate.TypeString) { return(new VisualAggregate(hier, xmlEl)); } else if (calcType == MeasureToMeasure.TypeString) { return(new MeasureToMeasure(hier, xmlEl)); } else if (calcType == MeasureInheritedNull.TypeString) { return(new MeasureInheritedNull(hier, xmlEl)); } else if (calcType == MemToVisAggr.TypeString) { return(new MemToVisAggr(hier, xmlEl)); } else if (calcType == MemToParent.TypeString) { return(new MemToParent(hier, xmlEl)); } else if (calcType == MemToAll.TypeString) { return(new MemToAll(hier, xmlEl)); } else if (calcType == FilteredByNameSet.TypeString) { return(new FilteredByNameSet(hier, xmlEl)); } else if (calcType == MemberChildrenSet.TypeString) { return(new MemberChildrenSet(hier, xmlEl)); } else if (calcType == MeasureWrapper.TypeString) { return(new MeasureWrapper(hier, xmlEl)); } else if (calcType == MemberWrapper.TypeString) { return(new MemberWrapper(hier, xmlEl)); } else { throw new InvalidMemberException("Unknown calc member type: " + calcType); } } else if (xmlEl.GetAttribute("E") == "1") //data member with error { throw new InvalidMemberException("Invalid Member: " + xmlEl.GetAttribute("UN")); } else //valid data member { return(new DataMember(hier, xmlEl)); } }
public SchemaMember(Hierarchy hier, System.Xml.XmlElement xmlEl) : base(hier) { base.LoadFromXml(xmlEl); }
internal SchemaMember(Hierarchy hier) : base(hier) { _children = new SchemaMembers(hier, this); }
public void Add(Hierarchy param, bool checkHierarchyMatch) { Add(param, checkHierarchyMatch, false); }
public override void LoadFromXml(System.Xml.XmlElement xmlEl) { base.LoadFromXml(xmlEl); string prompt = xmlEl.GetAttribute("PR"); this._prompt = (prompt == "1"?true:false); string formatString = xmlEl.GetAttribute("FS").Trim(); this._format = (formatString == null || formatString == "")?FormatEnum.Default:(FormatEnum)(int.Parse(formatString)); foreach (System.Xml.XmlElement childEl in xmlEl.ChildNodes) //calculated member references { if (childEl.Name == "D") // dimension { throw new NotImplementedException(); } else if (childEl.Name == "H") // hierarchy { string uniqueName = childEl.GetAttribute("UN"); string ignoreError = childEl.GetAttribute("IE"); Hierarchy hier = Schema.Hierarchies[uniqueName]; if (hier == null && ignoreError != "1") { throw new InvalidMemberException("Invalid object: " + uniqueName); } _mdxParameters.Add(hier, false); } else if (childEl.Name == "L") // level { string uniqueName = childEl.GetAttribute("UN"); string ignoreError = childEl.GetAttribute("IE"); Level lev = Schema.Levels[uniqueName]; if (lev == null && ignoreError != "1") { throw new InvalidMemberException("Invalid object: " + uniqueName); } _mdxParameters.Add(lev, false); } else if (childEl.Name == "M") // member { string hierUN = childEl.GetAttribute("H"); string ignoreError = childEl.GetAttribute("IE"); DataMember dmem = null; Hierarchy hier = null; try { if (hierUN != "") { hier = Schema.Hierarchies[hierUN]; if (hier == null && ignoreError != "1") { throw new InvalidMemberException("Invalid object: " + hier); } } dmem = DataMember.GetFromXml((hier == null?this.Hierarchy:hier), childEl); } catch (InvalidMemberException imexc) { if (ignoreError != "1") { throw imexc; } } _mdxParameters.Add(dmem, false); } } }
internal Member(Hierarchy hier) { _hierarchy=hier; }
// public override event EventHandler BeforeRemoveFromCollection; internal DataMember(Hierarchy hier) : base(hier) { }
internal void Insert(int Index, Hierarchy hier) { base.Insert(Index, hier, false); }
internal DataMember(Hierarchy hier, XmlElement xmlEl) : base(hier) { this.LoadFromXml(xmlEl); }
private void CreateHierarchy(short AxisOrdinal, HtmlTable hostTable , Hierarchy hier, byte TreeDepth) { //string hierIdentifier=_contr.IdentifierFromHierarchy(hier); string hierName=(hier.Name==""?hier.Dimension.Name:hier.Dimension.Name + "." + hier.Name); bool hierIsAggregated=false; bool hierIsMeasures=(hier.UniqueName=="[Measures]"); MembersAggregate aggr=hier.FilterMember as MembersAggregate; if(aggr!=null) hierIsAggregated=true; HtmlTableRow tr=new HtmlTableRow(); HtmlTableCell td; System.Web.UI.WebControls.Button btn; // --- node contr col-- tr=new HtmlTableRow(); td= new HtmlTableCell(); if(AxisOrdinal!=2) { btn=new System.Web.UI.WebControls.Button(); btn.ToolTip="Move To Filter"; btn.ID="sel_del:" + hier.UniqueName;//hierIdentifier; btn.CssClass="sel_del"; td.Controls.Add(btn); btn=new System.Web.UI.WebControls.Button(); btn.ToolTip="Move Up"; btn.ID="sel_up:"+ hier.UniqueName;//hierIdentifier; btn.CssClass="sel_up"; td.Controls.Add(btn); btn=new System.Web.UI.WebControls.Button(); btn.ToolTip="Move Down"; btn.ID="sel_down:"+ hier.UniqueName;//hierIdentifier; btn.CssClass="sel_down"; td.Controls.Add(btn); } else { btn=new System.Web.UI.WebControls.Button(); btn.ToolTip="Move To Row"; btn.ID="sel_torow:"+ hier.UniqueName;//hierIdentifier; btn.CssClass="sel_torow"; td.Controls.Add(btn); btn=new System.Web.UI.WebControls.Button(); btn.ToolTip="Move To Column"; btn.ID="sel_tocol:"+ hier.UniqueName;//hierIdentifier; btn.CssClass="sel_tocol"; td.Controls.Add(btn); } td.Attributes.Add("class","sel_C1"); td.NoWrap=true; tr.Cells.Add(td); // --- node name col-- td= new HtmlTableCell(); Literal lit=new Literal(); for(int i=0;i<TreeDepth;i++) lit.Text=lit.Text + " "; td.Controls.Add(lit); btn=new System.Web.UI.WebControls.Button(); if(hier.IsOpen) { btn.ToolTip="Close"; btn.ID="sel_hclose:"+ hier.UniqueName;//hierIdentifier; btn.CssClass="sel_close"; } else { btn.ToolTip="Open"; btn.ID="sel_hopen:"+ hier.UniqueName;//hierIdentifier; btn.CssClass="sel_open"; } td.Controls.Add(btn); lit=new Literal(); lit.Text=hierName; td.Controls.Add(lit); td.Attributes.Add("class","sel_C"); td.NoWrap=true; tr.Cells.Add(td); // --- node select col-- td= new HtmlTableCell(); if(AxisOrdinal!=2 && hier.IsOpen && !hierIsMeasures) { btn=new System.Web.UI.WebControls.Button(); btn.ToolTip="Select Children"; btn.ID="sel_hselall:"+ hier.UniqueName;//hierIdentifier; btn.CssClass="sel_selall"; td.Controls.Add(btn); btn=new System.Web.UI.WebControls.Button(); btn.ToolTip="Deselect All Children"; btn.ID="sel_hdeselall:"+ hier.UniqueName;//hierIdentifier; btn.CssClass="sel_deselall"; td.Controls.Add(btn); } else if(AxisOrdinal==2 && !hierIsMeasures) { btn=new System.Web.UI.WebControls.Button(); if(hierIsAggregated) { btn.ToolTip="Set Aggregate Off"; btn.ID="sel_aggr_off:"+ hier.UniqueName;//hierIdentifier; btn.CssClass="sel_aggr_on"; } else { btn.ToolTip="Set Aggregate On"; btn.ID="sel_aggr_on:"+ hier.UniqueName;//hierIdentifier; btn.CssClass="sel_aggr_off"; } td.Controls.Add(btn); } td.Attributes.Add("class","sel_C2"); td.NoWrap=true; tr.Cells.Add(td); hostTable.Rows.Add(tr); if(hier.IsOpen==false) return; TreeDepth++; // data members level depth=0 for(int j=0;j<hier.SchemaMembers.Count;j++) CreateMemHierarchy(AxisOrdinal, hostTable, hier.SchemaMembers[j] , hierIsAggregated, TreeDepth, false); // calc members for(int j=0;j<hier.CalculatedMembers.Count;j++) CreateMemHierarchy(AxisOrdinal, hostTable, hier.CalculatedMembers[j] , hierIsAggregated, 0, false); }
internal Member(Hierarchy hier) { _hierarchy = hier; }
private void AddMembers(Hierarchy hier, System.Collections.Specialized.StringCollection UniqueNames, SortedList ReAddDataMembers) { bool isAggr=(hier.Axis.Ordinal==2 && hier.FilterMember is MembersAggregate?true:false); for(int i=0;i<UniqueNames.Count;i++) { if(isAggr && UniqueNames[i]==hier.FilterMember.UniqueName) continue; // add if(isAggr) { // check readd or from schema Member mem=(Member)ReAddDataMembers[UniqueNames[i]]; if(mem!=null) ((MembersAggregate)hier.FilterMember).AddMember(mem); else { SchemaMember smem=hier.SchemaMembers.Find(UniqueNames[i]); if(smem!=null) ((MembersAggregate)hier.FilterMember).AddMember(smem); } } else { // check readd or nfrom schema Member mem=(Member)ReAddDataMembers[UniqueNames[i]]; if(mem!=null) hier.AddMember(mem, true); else { SchemaMember smem=hier.SchemaMembers.Find(UniqueNames[i]); if(smem!=null) hier.AddMember(smem, true); } } } }
internal void Add(Hierarchy hier) { this.Insert(this.Count, hier); }
private bool HasAggragate(Hierarchy hier , VisualAggregate.AggregateFunction aggr) { foreach(DataMember mem in hier.CalculatedMembers) { VisualAggregate aggrMem=mem as VisualAggregate; if(aggrMem!=null && aggrMem.Aggregation==aggr) return true; } return false; }
public void MoveDown(Hierarchy Hierarchy) { int index=this.IndexOf(Hierarchy.UniqueName); if(index==-1 || index==this.Count-1) return; this.RemoveAt(index); this.Insert(index+1,Hierarchy); }
public MemberWrapper(Hierarchy HostHier, System.Xml.XmlElement xmlEl) : base(null, HostHier) { LoadFromXml(xmlEl); }
public bool BelongsTo(Hierarchy hier) { return (this.UniqueName.StartsWith(hier.UniqueName)); }
public bool BelongsTo(Hierarchy hier) { return(this.UniqueName.StartsWith(hier.UniqueName)); }
private CalculatedMember CreateRatioMeasure(string Type , Hierarchy Hier , Member Measure ) { CalculatedMember calcMem=null; Hierarchy hostHier=_report.Schema.Hierarchies["[Measures]"]; switch(Type) { case "Ratio To Visual Sum": calcMem=new MemToVisAggr(null, hostHier, Measure , Hier , VisualAggregate.AggregateFunction.SUM); break; case "Ratio To Visual Avg": calcMem=new MemToVisAggr(null, hostHier, Measure , Hier , VisualAggregate.AggregateFunction.AVG); break; case "Ratio To Visual Min": calcMem=new MemToVisAggr(null, hostHier, Measure , Hier , VisualAggregate.AggregateFunction.MIN); break; case "Ratio To Visual Max": calcMem=new MemToVisAggr(null, hostHier, Measure , Hier , VisualAggregate.AggregateFunction.MAX); break; case "Ratio To Parent Member": calcMem=new MemToParent(null, hostHier, Measure , Hier); break; case "Ratio To (All) Member": calcMem=new MemToAll(null, hostHier, Measure , Hier); break; default: throw new Exception("Unknown Type"); } return calcMem; }
public SchemaMembers GetMemberChildren(Hierarchy hier, string UniqueName, bool IfLeafAddItself) { SchemaMember smem=new SchemaMember(hier); System.Xml.XmlElement parentEl=GetMemberChildren(UniqueName, IfLeafAddItself); smem.LoadChildrenFromXmlSchema(parentEl); return smem.Children; }
internal CalculatedMembers(Hierarchy hier) { if(hier==null) throw new ArgumentNullException(); _hier=hier; }
public SchemaMember GetMemberParent(Hierarchy hier, string MemUniqueName) { System.Xml.XmlElement parentEl=GetMemberParent(hier.UniqueName, MemUniqueName); XmlElement memEl=(XmlElement)parentEl.FirstChild; if(memEl!=null) { SchemaMember smem=new SchemaMember(hier); smem.LoadFromXml(memEl); return smem; } return null; }