internal CalculatedMember ToCalculatedMember() { CalculatedMember cm = new CalculatedMember(); cm.Name = this.Name; cm.Mdx = this.Mdx; if (this.MemberName != null && this.MemberName.Length > 0) { cm.MemberName = this.MemberName; } if (this.Hierarchy != null && this.Hierarchy.Length > 0) { cm.Hierarchy = this.Hierarchy; } if (this.ParentName != null && this.ParentName.Length > 0) { cm.ParentName = this.ParentName; } if (this.SolveOrder != 0) { cm.SolveOrder = this.SolveOrder; } if (this.Set != false) { cm.Set = this.Set; } return(cm); }
internal void FromCalculatedMember(CalculatedMember cm) { this.SetAllNull(); if (cm.Name != null) { this.Name = cm.Name.Value; } if (cm.Mdx != null) { this.Mdx = cm.Mdx.Value; } if (cm.MemberName != null) { this.MemberName = cm.MemberName.Value; } if (cm.Hierarchy != null) { this.Hierarchy = cm.Hierarchy.Value; } if (cm.ParentName != null) { this.ParentName = cm.ParentName.Value; } if (cm.SolveOrder != null) { this.SolveOrder = cm.SolveOrder.Value; } if (cm.Set != null) { this.Set = cm.Set.Value; } }
public void ResetFormattedMember(string uniqueName) { // get hierarchy and member Hierarchy hier = _report.Schema.GetHierarchyFromMemberUniqueName(uniqueName); if (hier == null) { throw new Exception("Unable to resolve hierarchy from " + uniqueName); } DataMember mem = hier.GetMember(uniqueName); if (mem == null) { throw new Exception("Cannot find member: " + uniqueName); } CalculatedMember cmem = mem as CalculatedMember; MemberWrapper mw = cmem as MemberWrapper; if (mw != null) // if it's member wrapper, simply replace it with source member { cmem.Hierarchy.ReplaceMember(mw, mw.SourceMember); } else if (cmem != null) // if other calculated member, set default name and format { CalculatedMember newMem = cmem.Clone(null); newMem.Format = CalculatedMember.FormatEnum.Default; newMem.Hierarchy.ReplaceMember(cmem, newMem); } }
internal CalculatedMember ToCalculatedMember() { var cm = new CalculatedMember(); cm.Name = Name; cm.Mdx = Mdx; if ((MemberName != null) && (MemberName.Length > 0)) { cm.MemberName = MemberName; } if ((Hierarchy != null) && (Hierarchy.Length > 0)) { cm.Hierarchy = Hierarchy; } if ((ParentName != null) && (ParentName.Length > 0)) { cm.ParentName = ParentName; } if (SolveOrder != 0) { cm.SolveOrder = SolveOrder; } if (Set) { cm.Set = Set; } return(cm); }
private CalculatedMember CreateCalculatedMeasure(Member Measure1, Member Measure2, string Operation) { CalculatedMember calcMem = null; Hierarchy meaHier = _report.Schema.Hierarchies["[Measures]"]; switch (Operation) { case "-": calcMem = new MeasureToMeasure(null, meaHier, Measure1, Measure2, MeasureToMeasure.Operations.SUBTRACT); break; case "+": calcMem = new MeasureToMeasure(null, meaHier, Measure1, Measure2, MeasureToMeasure.Operations.ADD); break; case "/": calcMem = new MeasureToMeasure(null, meaHier, Measure1, Measure2, MeasureToMeasure.Operations.DIVIDE); break; case "*": calcMem = new MeasureToMeasure(null, meaHier, Measure1, Measure2, MeasureToMeasure.Operations.MULTIPLY); break; case "Inherite NULL": calcMem = new MeasureInheritedNull(null, meaHier, Measure1, Measure2); break; default: throw new Exception("Unknown Operation"); } return(calcMem); }
public void SetFormattedMember(string uniqueName, string name, string format) { // get hierarchy and member Hierarchy hier = _report.Schema.GetHierarchyFromMemberUniqueName(uniqueName); // // debug // if(hier.UniqueName=="[Measures]") // { // TestFormatMeasure(uniqueName, name, format); // return; // } if (hier == null) { throw new Exception("Unable to resolve hierarchy from " + uniqueName); } DataMember mem = hier.GetMember(uniqueName); if (mem == null) { throw new Exception("Cannot find member: " + uniqueName); } if (mem is Set) { throw new ArgumentException("Cannot format set: + uniqueName"); } // resolve formatEnum CalculatedMember.FormatEnum formatEnum = (CalculatedMember.FormatEnum)Enum.Parse(typeof(CalculatedMember.FormatEnum), format, true); // format CalculatedMember cmem = mem as CalculatedMember; if (cmem != null) // if calculated member, simply set different name and format { if (cmem.Name == name && formatEnum == cmem.Format) { return; // if not changed } CalculatedMember newMem = cmem.Clone(name); newMem.Format = formatEnum; cmem.Hierarchy.ReplaceMember(cmem, newMem); } else // if data member, create new wrapper { if (mem.Name == name && formatEnum == CalculatedMember.FormatEnum.Default) { return; // if not changed } CalculatedMember newMem = new BusinessObjects.Olap.CalculatedMemberTemplates.MemberWrapper(name, hier, mem); newMem.Format = formatEnum; newMem.Hierarchy.ReplaceMember(mem, newMem); } }
public void RemoveVisualAggr(string HierUN, string Aggr) { VisualAggregate.AggregateFunction aggr = (VisualAggregate.AggregateFunction)System.Enum.Parse(typeof(VisualAggregate.AggregateFunction), Aggr, true); Hierarchy hier = _report.Schema.Hierarchies[HierUN]; CalculatedMember cmem = hier.CalculatedMembers.GetVisualAggregate(aggr); if (cmem != null) { hier.RemoveMember(cmem); } }
internal void FromCalculatedMember(CalculatedMember cm) { this.SetAllNull(); if (cm.Name != null) this.Name = cm.Name.Value; if (cm.Mdx != null) this.Mdx = cm.Mdx.Value; if (cm.MemberName != null) this.MemberName = cm.MemberName.Value; if (cm.Hierarchy != null) this.Hierarchy = cm.Hierarchy.Value; if (cm.ParentName != null) this.ParentName = cm.ParentName.Value; if (cm.SolveOrder != null) this.SolveOrder = cm.SolveOrder.Value; if (cm.Set != null) this.Set = cm.Set.Value; }
private OlapReport CreateOLAPReport() { OlapReport olapReport = new OlapReport { Name = "Calculated Report", CurrentCubeName = "Adventure Works" }; DimensionElement dimensionElementColumn = new DimensionElement(); dimensionElementColumn.Name = "Customer"; dimensionElementColumn.HierarchyName = "Customer Geography"; dimensionElementColumn.AddLevel("Customer Geography", "Country"); MeasureElements measureElementColumn = new MeasureElements(); measureElementColumn.Elements.Add(new MeasureElement { Name = "Internet Sales Amount" }); measureElementColumn.Elements.Add(new MeasureElement { Name = "Sales Amount" }); DimensionElement dimensionElementRow = new DimensionElement(); dimensionElementRow.Name = "Date"; dimensionElementRow.AddLevel("Fiscal", "Fiscal Year"); // Calculated measure CalculatedMember calculatedMeasure1 = new CalculatedMember(); calculatedMeasure1.Name = "Order on Discount Sale"; calculatedMeasure1.Expression = "[Measures].[Order Quantity] + ([Measures].[Order Quantity] * 0.10)"; calculatedMeasure1.AddElement(new MeasureElement { Name = "Order Quantity" }); olapReport.CalculatedMembers.Add(calculatedMeasure1); // Adding column members olapReport.CategoricalElements.Add(dimensionElementColumn); olapReport.CategoricalElements.Add(calculatedMeasure1); // Adding measure element olapReport.CategoricalElements.Add(measureElementColumn); // Adding row members olapReport.SeriesElements.Add(dimensionElementRow); return(olapReport); }
public SerializedCalculatedMember(CalculatedMember m) { Position = m.Position; DisplayName = m.DisplayName; UniqueName = m.UniqueName; if (!string.IsNullOrEmpty(m.Description)) { Description = m.Description; } if (m.Parent != null) { Parent = m.Parent.UniqueName; } if (!string.IsNullOrEmpty(m.Expression)) { Expression = m.Expression; } }
private void AddParameterInput(CalculatedMember cmem) { HtmlTableRow row = new HtmlTableRow(); this.paramsTable.Rows.Add(row); FilteredByNameSet filtLevSet = cmem as FilteredByNameSet; if (filtLevSet != null) { HtmlTableCell cell = new HtmlTableCell(); row.Cells.Add(cell); CalculatedMemberControls.FilteredByNameSetControl control = (CalculatedMemberControls.FilteredByNameSetControl)Page.LoadControl(Request.ApplicationPath + "/OlapReport/CalculatedMemberControls/FilteredByNameSetControl.ascx"); control._filtByNameSet = filtLevSet; cell.Controls.Add(control); } }
public void AddCalculatedMeasure(string MeasureName1, string MeasureName2, string Operation) { Hierarchy measuresHier = _report.Schema.Hierarchies["[Measures]"]; Member mea1 = measuresHier.SchemaMembers.Find("[Measures].[" + MeasureName1.Replace("]", "]]") + "]"); Member mea2 = measuresHier.SchemaMembers.Find("[Measures].[" + MeasureName2.Replace("]", "]]") + "]"); if (measuresHier == null) { throw new Exception("Unknown hierarchy"); } if (mea1 == null || mea2 == null) { throw new Exception("Unknown measure"); } CalculatedMember calcMem = this.CreateCalculatedMeasure(mea1, mea2, Operation); if (calcMem == null) { return; } if (measuresHier.Axis.Ordinal == 2) { if ((measuresHier.FilterMember is CalculatedMember) == false) { DataMember existMeasure = measuresHier.FilterMember; measuresHier.ReplaceMember(existMeasure, calcMem); } else { throw new Exception("Cannot add: remove existing calculated member first"); } } else { measuresHier.AddMember(calcMem, true); } }
public void AddRatioMeasure(string TypeString, string HierUniqueName, string MeasureName) { Hierarchy measuresHier = _report.Schema.Hierarchies["[Measures]"]; Hierarchy ratioHier = _report.Schema.Hierarchies[HierUniqueName]; Member ratioMeasure = measuresHier.SchemaMembers.Find("[Measures].[" + MeasureName.Replace("]", "]]") + "]"); if (ratioHier == null) { throw new Exception("Unknown hierarchy"); } if (ratioMeasure == null) { throw new Exception("Unknown measure"); } CalculatedMember calcMem = this.CreateRatioMeasure(TypeString, ratioHier, ratioMeasure); if (calcMem == null) { return; } if (measuresHier.Axis.Ordinal == 2) { if ((measuresHier.FilterMember is CalculatedMember) == false) { DataMember existMeasure = measuresHier.FilterMember; measuresHier.ReplaceMember(existMeasure, calcMem); } else { throw new Exception("Cannot add: remove existing calculated member first"); } } else { measuresHier.AddMember(calcMem, true); } }
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); }
OlapReport CalculatedReport() { // CubeModel cubeModel = new CubeModel(ConnectionString); OlapReport olapReport = new OlapReport(); olapReport.CurrentCubeName = "Adventure Works"; DimensionElement dimensionElementColumn = new DimensionElement(); //Specifying the Name for the Dimension Element dimensionElementColumn.Name = "Customer"; dimensionElementColumn.HierarchyName = "Customer Geography"; dimensionElementColumn.AddLevel("Customer Geography", "Country"); DimensionElement internalDimension = new DimensionElement(); internalDimension.Name = "Product"; internalDimension.AddLevel("Product Categories", "Category"); //// Calculated Measure CalculatedMember calculatedMeasure1 = new CalculatedMember(); calculatedMeasure1.Name = "Oder on Discount"; calculatedMeasure1.Expression = "[Measures].[Order Quantity] + ([Measures].[Order Quantity] * 0.10)"; calculatedMeasure1.AddElement(new MeasureElement { Name = "Order Quantity" }); //// Calculated Measure CalculatedMember calculatedMeasure2 = new CalculatedMember(); calculatedMeasure2.Name = "Sales Range"; calculatedMeasure2.AddElement(new MeasureElement { Name = "Sales Amount" }); calculatedMeasure2.Expression = "IIF([Measures].[Sales Amount]>200000,\"High\",\"Low\")"; // Calculated Dimension CalculatedMember calculateDimension = new CalculatedMember(); calculateDimension.Name = "Bikes & Components"; calculateDimension.Expression = "([Product].[Product Categories].[Category].[Bikes] + [Product].[Product Categories].[Category].[Components] )"; calculateDimension.AddElement(internalDimension); MeasureElements measureElementColumn = new MeasureElements(); measureElementColumn.Elements.Add(new MeasureElement { Name = "Sales Amount" }); measureElementColumn.Elements.Add(new MeasureElement { Name = "Order Quantity" }); DimensionElement dimensionElementRow = new DimensionElement(); //Specifying the Dimension Name dimensionElementRow.Name = "Date"; dimensionElementRow.AddLevel("Fiscal", "Fiscal Year"); //// Adding Calculated members in calculated member collection olapReport.CalculatedMembers.Add(calculatedMeasure1); olapReport.CalculatedMembers.Add(calculateDimension); olapReport.CalculatedMembers.Add(calculatedMeasure2); // Adding Column Members olapReport.CategoricalElements.Add(dimensionElementColumn); olapReport.CategoricalElements.Add(calculateDimension); //Adding Measure Element olapReport.CategoricalElements.Add(measureElementColumn); olapReport.CategoricalElements.Add(calculatedMeasure1); olapReport.CategoricalElements.Add(calculatedMeasure2); //Adding Row Members olapReport.SeriesElements.Add(dimensionElementRow); return(olapReport); }
private OlapReport CreateOlapReport(string Report) { OlapReport olapReport = new OlapReport() { Name = "Default Report" }; olapReport.CurrentCubeName = "Adventure Works"; if (Report == "Paging") { olapReport.EnablePaging = true; olapReport.PagerOptions.SeriesPageSize = 5; olapReport.PagerOptions.CategoricalPageSize = 3; DimensionElement dimensionElement = new DimensionElement() { Name = "Customer" }; dimensionElement.AddLevel("Customer", "Customer"); olapReport.CategoricalElements.Add(dimensionElement); DimensionElement dimensionElementRow = new DimensionElement() { Name = "Customer", HierarchyName = "Customer" }; dimensionElementRow.AddLevel("Customer Geography", "Country"); olapReport.SeriesElements.Add(dimensionElementRow); MeasureElements measureElementColumn = new MeasureElements(); measureElementColumn.Elements.Add(new MeasureElement { Name = "Internet Sales Amount" }); olapReport.CategoricalElements.Add(measureElementColumn); } else if (Report == "CalculatedMember") { DimensionElement internalDimension = new DimensionElement(); internalDimension.Name = "Product"; internalDimension.AddLevel("Product Categories", "Category"); //// Calculated Measure CalculatedMember calculatedMeasure1 = new CalculatedMember(); calculatedMeasure1.Name = "Oder on Discount"; calculatedMeasure1.Expression = "[Measures].[Order Quantity] + ([Measures].[Order Quantity] * 0.10)"; calculatedMeasure1.AddElement(new MeasureElement { Name = "Order Quantity" }); // Calculated Dimension CalculatedMember calculateDimension = new CalculatedMember(); calculateDimension.Name = "Bikes & Components"; calculateDimension.Expression = "([Product].[Product Categories].[Category].[Bikes] + [Product].[Product Categories].[Category].[Components] )"; calculateDimension.AddElement(internalDimension); MeasureElements measureElementColumn = new MeasureElements(); measureElementColumn.Elements.Add(new MeasureElement { Name = "Sales Amount" }); measureElementColumn.Elements.Add(new MeasureElement { Name = "Order Quantity" }); DimensionElement dimensionElementRow = new DimensionElement(); //Specifying the Dimension Name dimensionElementRow.Name = "Date"; dimensionElementRow.AddLevel("Fiscal", "Fiscal Year"); //// Adding Calculated members in calculated member collection olapReport.CalculatedMembers.Add(calculatedMeasure1); olapReport.CalculatedMembers.Add(calculateDimension); ///Adding Measure Element olapReport.CategoricalElements.Add(measureElementColumn); olapReport.CategoricalElements.Add(calculatedMeasure1); ///Adding Row Members olapReport.SeriesElements.Add(dimensionElementRow); olapReport.SeriesElements.Add(calculateDimension); } else if (Report == "KPI") { DimensionElement dimensionElement = new DimensionElement() { Name = "Date" }; dimensionElement.AddLevel("Fiscal", "Fiscal Year"); olapReport.CategoricalElements.Add(dimensionElement); DimensionElement dimensionElementRow = new DimensionElement() { Name = "Customer", HierarchyName = "Customer" }; dimensionElementRow.AddLevel("Customer Geography", "Country"); olapReport.SeriesElements.Add(dimensionElementRow); MeasureElements measureElementColumn = new MeasureElements(); measureElementColumn.Elements.Add(new MeasureElement { Name = "Internet Sales Amount" }); olapReport.CategoricalElements.Add(measureElementColumn); KpiElements kpiElement = new KpiElements(); kpiElement.Elements.Add(new KpiElement { Name = "Revenue", ShowKPIStatus = false, ShowKPIGoal = false, ShowKPITrend = true, ShowKPIValue = false }); olapReport.CategoricalElements.Add(kpiElement); } else { MeasureElements measureElement = new MeasureElements(); measureElement.Elements.Add(new MeasureElement { UniqueName = "[Measures].[Customer Count]" }); DimensionElement dimensionElementRow = new DimensionElement(); dimensionElementRow.Name = "Date"; dimensionElementRow.AddLevel("Fiscal", "Fiscal Year"); olapReport.SeriesElements.Add(dimensionElementRow); olapReport.CategoricalElements.Add(measureElement); } return(olapReport); }
internal static JsonDialog MakeHTMLMember(OlapControl grid, Level level, CalculatedMember member) { var result = new JsonDialog(); result.width = 500; string uniqueName; string displayName; string expression; if (member == null) { uniqueName = "NULL"; displayName = RadarUtils.GetResStr("rsTypeNameMember"); expression = "0"; } else { uniqueName = member.UniqueName; displayName = member.DisplayName; expression = member.Expression; } var writer = new HtmlTextWriter(); writer.AddAttribute(HtmlTextWriterAttribute.Width, "100%"); writer.RenderBeginTag(HtmlTextWriterTag.Table); if (member == null) { result.title = RadarUtils.GetResStr("rsNewCalculatedMember"); } else { result.title = string.Format(RadarUtils.GetResStr("rsEditPropName"), member.DisplayName); } if (member == null) { writer.RenderBeginTag(HtmlTextWriterTag.Tr); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.Write(RadarUtils.GetResStr("exprt_Caption") + ":"); writer.RenderEndTag(); //td writer.RenderEndTag(); // tr writer.RenderBeginTag(HtmlTextWriterTag.Tr); writer.AddStyleAttribute(HtmlTextWriterStyle.PaddingLeft, "20px"); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.AddAttribute(HtmlTextWriterAttribute.Id, "OCM_tbDisplayName"); writer.AddAttribute(HtmlTextWriterAttribute.Type, "text"); writer.AddAttribute("class", "ui-widget-content"); writer.AddStyleAttribute("width", "95%"); writer.AddAttribute(HtmlTextWriterAttribute.Value, displayName); writer.RenderBeginTag(HtmlTextWriterTag.Input); writer.RenderEndTag(); // input writer.RenderEndTag(); //td writer.RenderEndTag(); // tr } writer.RenderBeginTag(HtmlTextWriterTag.Tr); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.Write(RadarUtils.GetResStr("rsExpression") + ":"); writer.RenderEndTag(); //td writer.RenderEndTag(); // tr writer.RenderBeginTag(HtmlTextWriterTag.Tr); writer.AddStyleAttribute(HtmlTextWriterStyle.PaddingLeft, "20px"); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.AddAttribute(HtmlTextWriterAttribute.Class, "ui-widget-content"); writer.AddAttribute(HtmlTextWriterAttribute.Id, "OCM_tbExpression"); writer.AddAttribute(HtmlTextWriterAttribute.Value, expression); writer.AddStyleAttribute("width", "95%"); writer.AddStyleAttribute("height", "150px"); writer.RenderBeginTag(HtmlTextWriterTag.Textarea); writer.RenderEndTag(); // textarea writer.RenderEndTag(); //td writer.RenderEndTag(); // tr writer.RenderEndTag(); // table result.buttons = new[] { new JsonDialogButton { text = RadarUtils.GetResStr("rsOk"), code = "RadarSoft.$('#" + grid.ClientID + "').data('grid').applyCalculated('applycalcmember|" + level.UniqueName + "|" + uniqueName + "')" }, new JsonDialogButton { text = RadarUtils.GetResStr("rsCancel"), code = "RadarSoft.$(this).dialog('close')" } }; result.data = writer.ToString(); return(result); }
internal CalculatedMember ToCalculatedMember() { CalculatedMember cm = new CalculatedMember(); cm.Name = this.Name; cm.Mdx = this.Mdx; if (this.MemberName != null && this.MemberName.Length > 0) cm.MemberName = this.MemberName; if (this.Hierarchy != null && this.Hierarchy.Length > 0) cm.Hierarchy = this.Hierarchy; if (this.ParentName != null && this.ParentName.Length > 0) cm.ParentName = this.ParentName; if (this.SolveOrder != 0) cm.SolveOrder = this.SolveOrder; if (this.Set != false) cm.Set = this.Set; return cm; }
private void CreateMemHierarchy(short AxisOrdinal, HtmlTable hostTable, Member mem, bool HierIsAggregated, byte TreeDepth, bool autoSelect) { //do not display aggregate, display undlying calc members instead if (HierIsAggregated == true && mem.UniqueName == mem.Hierarchy.FilterMember.UniqueName) { MembersAggregate maggr = mem.Hierarchy.FilterMember as MembersAggregate; if (maggr != null) { for (int i = 0; i < maggr.Members.Count; i++) { CalculatedMember cmem = maggr.Members[i] as CalculatedMember; if (cmem != null) { this.CreateMemHierarchy(AxisOrdinal, hostTable, cmem, HierIsAggregated, TreeDepth, false); // recursion } } } return; } string memIdentifier = _contr.IdentifierFromSchemaMember(mem); string hierIdentifier = mem.Hierarchy.Axis.Ordinal.ToString() + ":" + mem.Hierarchy.Ordinal.ToString(); bool memIsSelected = false; bool memIsOpen = false; bool memIsPlaceholder = false; bool memAutoSelectChildren = (mem.Hierarchy.CalculatedMembers.GetMemberChildrenSet(mem.UniqueName) != null); SchemaMember smem = mem as SchemaMember; if (smem != null) { memIsOpen = smem.IsOpen; memIsPlaceholder = smem.IsPlaceholder; } if (HierIsAggregated) { memIsSelected = (((MembersAggregate)mem.Hierarchy.FilterMember).Members[mem.UniqueName] != null?true:false); } else { memIsSelected = (mem.Hierarchy.GetMember(mem.UniqueName) != null); } HtmlTableRow tr = new HtmlTableRow(); HtmlTableCell td; System.Web.UI.WebControls.Button btn; Literal lit; // --- node contr col-- td = new HtmlTableCell(); td.Attributes.Add("class", "sel_C1"); td.NoWrap = true; tr.Cells.Add(td); // --- node name col-- td = new HtmlTableCell(); lit = new Literal(); for (int i = 0; i < TreeDepth; i++) { lit.Text = lit.Text + " "; } td.Controls.Add(lit); if (memIsOpen) { btn = new System.Web.UI.WebControls.Button(); btn.ToolTip = "Close"; btn.ID = "sel_close:" + memIdentifier; btn.CssClass = "sel_close"; td.Controls.Add(btn); } else { if (mem.CanDrillDown) { btn = new System.Web.UI.WebControls.Button(); btn.ToolTip = "Open"; btn.ID = "sel_open:" + memIdentifier; btn.CssClass = "sel_open"; td.Controls.Add(btn); } else { // no image lit.Text = lit.Text + " "; } } if (memIsPlaceholder == false) { if (AxisOrdinal == 2 && HierIsAggregated == false) { HtmlInputRadioButton radio = new HtmlInputRadioButton(); radio.Name = "m:" + hierIdentifier; radio.ID = "m:" + memIdentifier; radio.EnableViewState = false; radio.Checked = (memIsSelected || autoSelect); radio.Disabled = autoSelect; radio.Attributes.Add("class", "sel_chk"); td.Controls.Add(radio); } else { HtmlInputCheckBox chk = new HtmlInputCheckBox(); chk.ID = "m:" + mem.UniqueName; //note, UniqueName ! chk.EnableViewState = false; chk.Checked = (memIsSelected || autoSelect); chk.Disabled = autoSelect; chk.Attributes.Add("class", "sel_chk"); td.Controls.Add(chk); } } lit = new Literal(); lit.Text = mem.Name; 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 && memIsOpen) { if (!memAutoSelectChildren) { btn = new System.Web.UI.WebControls.Button(); btn.ToolTip = "Auto-Select Children"; btn.ID = "sel_selauto:" + memIdentifier; btn.CssClass = "sel_selauto"; td.Controls.Add(btn); btn = new System.Web.UI.WebControls.Button(); btn.ToolTip = "Select Children"; btn.ID = "sel_selall:" + memIdentifier; btn.CssClass = "sel_selall"; td.Controls.Add(btn); } btn = new System.Web.UI.WebControls.Button(); btn.ToolTip = "Deselect All Children"; btn.ID = "sel_deselall:" + memIdentifier; btn.CssClass = "sel_deselall"; td.Controls.Add(btn); } td.Attributes.Add("class", "sel_C2"); td.NoWrap = true; tr.Cells.Add(td); hostTable.Rows.Add(tr); if (memIsOpen == false) { return; } // next level members if it's schema member TreeDepth++; if (smem != null) { for (int j = 0; j < smem.Children.Count; j++) { CreateMemHierarchy(AxisOrdinal, hostTable, smem.Children[j], HierIsAggregated, TreeDepth, memAutoSelectChildren); } } }