//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);
 }
Ejemplo n.º 2
0
        public DataMember GetByHierarchy(Hierarchy hier)
        {
            foreach(DataMember mem in this)
                if(mem.BelongsTo(hier))
                    return mem;

            return null;
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 6
0
        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;
        }
Ejemplo n.º 7
0
 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);
        }
Ejemplo n.º 10
0
 internal Level(Hierarchy hier)
 {
     _hierarchy = hier;
 }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        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));
            }
        }
Ejemplo n.º 13
0
 public SchemaMember(Hierarchy hier, System.Xml.XmlElement xmlEl) : base(hier)
 {
     base.LoadFromXml(xmlEl);
 }
Ejemplo n.º 14
0
 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);
                }
            }
        }
Ejemplo n.º 17
0
 internal Member(Hierarchy hier)
 {
     _hierarchy=hier;
 }
Ejemplo n.º 18
0
//		public override event EventHandler BeforeRemoveFromCollection;

        internal DataMember(Hierarchy hier) : base(hier)
        {
        }
Ejemplo n.º 19
0
 internal void Insert(int Index, Hierarchy hier)
 {
     base.Insert(Index, hier, false);
 }
Ejemplo n.º 20
0
 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 + "&nbsp;&nbsp;";
            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);
        }
Ejemplo n.º 22
0
 internal Member(Hierarchy hier)
 {
     _hierarchy = hier;
 }
Ejemplo n.º 23
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 24
0
 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;
 }
Ejemplo n.º 26
0
        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);
        }
Ejemplo n.º 27
0
 public MemberWrapper(Hierarchy HostHier, System.Xml.XmlElement xmlEl)
     : base(null, HostHier)
 {
     LoadFromXml(xmlEl);
 }
Ejemplo n.º 28
0
 public bool BelongsTo(Hierarchy hier)
 {
     return (this.UniqueName.StartsWith(hier.UniqueName));
 }
Ejemplo n.º 29
0
 public bool BelongsTo(Hierarchy hier)
 {
     return(this.UniqueName.StartsWith(hier.UniqueName));
 }
Ejemplo n.º 30
0
        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;
        }
Ejemplo n.º 31
0
 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;
        }
Ejemplo n.º 33
0
 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;
 }