public void FindMemberProperty() { var connection = TestHelper.CreateConnectionToSsas(); connection.Open(); CubeDef cube = TestHelper.GetCube(connection); KpiCollection kpis = cube.Kpis; MeasureCollection meas = cube.Measures; DimensionCollection dims = cube.Dimensions; HierarchyCollection hiers = dims[0].Hierarchies; LevelCollection levels = hiers[0].Levels; MemberCollection members = levels[1].GetMembers(); MemberProperty prop = members[0].MemberProperties.Find("PARENT_UNIQUE_NAME"); Assert.IsTrue(!string.IsNullOrEmpty(prop.Value.ToString())); connection.Close(); }
private void Dimension_SelectedIndexChanged(object sender, EventArgs e) { if (ASDatabase.SelectedIndex > -1 && Cube.SelectedIndex > -1 && Dimension.SelectedIndex > -1) { using (Server S = new Server()) { S.Connect(connectionString); if (rbDimension.Checked == true) { CubeDimension CD = S.Databases.GetByName(ASDatabase.SelectedItem.ToString()).Cubes.GetByName(Cube.SelectedItem.ToString()).Dimensions.GetByName(Dimension.SelectedItem.ToString()); Dimension D = CD.Dimension; DataTable AT = GetAttributesByDimension(D); //dataGridView1.Columns.Remove("Attributes List"); dataGridView1.DataSource = AT; //dataGridView1.DataBind(); } if (rbMeasureGroups.Checked == true) { MeasureGroup MG = S.Databases.GetByName(ASDatabase.SelectedItem.ToString()).Cubes.GetByName(Cube.SelectedItem.ToString()).MeasureGroups.GetByName(Dimension.SelectedItem.ToString()); MeasureCollection MC = MG.Measures; DataTable MA = getMeasureAttributes(MC); dataGridView1.DataSource = MA; DataTable PT = getMeasureGroupPartitions(MG); PartitionsGrid.DataSource = PT; } } } }
public async Task <MeasureCollection> GetMeasuresAsinc() { if (_Measures == null) { _Measures = new MeasureCollection(); } if (_Measures.Count == 0) { var command = new XmlaCommand("MDSCHEMA_MEASURES", Connection); command.CommandRestrictions.CubeName = CubeName; var response = await command.ExecuteAsync(); try { var tasks = response.GetXRows().Select(xrow => xrow.ToXmlaObjectAsync <Measure>(this)); var results = await Task.WhenAll(tasks); _Measures.AddRange(results); } catch { throw; } } return(_Measures); }
public new virtual MeasureCollection List(IEnumerable<IFilter> filters) { var measures = new MeasureCollection(); var rows = Discover(filters); foreach (var row in rows) measures.Add(row.UniqueName, row.Caption, row.DisplayFolder); return measures; }
public new virtual MeasureCollection List(IEnumerable <IFilter> filters) { var measures = new MeasureCollection(); var rows = Discover(filters); foreach (var row in rows) { measures.Add(row.UniqueName, row.Caption, row.DisplayFolder); } return(measures); }
//private void comboBoxMeasureGroups_SelectedIndexChanged(object sender, EventArgs e) //{ // if (Dimension.SelectedIndex > -1) // { // using (Server S = new Server()) // { // string connectionString; // connectionString = "DataSource=" + ServerName.Text; // S.Connect(connectionString); // MeasureGroup MG = S.Databases.GetByName(ASDatabase.SelectedItem.ToString()).Cubes.GetByName(Cube.SelectedItem.ToString()).MeasureGroups.GetByName(Dimension.SelectedItem.ToString()); // MeasureCollection MC = MG.Measures; // DataTable MA = getMeasureAttributes(MC); // dataGridView1.DataSource = MA; // } // } //} public DataTable getMeasureAttributes(MeasureCollection MC) { DataTable MA = new DataTable(); MA.Columns.Add("Measure Name"); MA.Columns.Add("Source Table"); MA.Columns.Add("Source Column"); MA.Columns.Add("Aggregate User"); foreach (Measure M in MC) { DataSourceView DS = M.ParentCube.DataSourceView; DataSet d = new DataSet(); d = DS.Schema; DataItem DI = M.Source; DataTable DT; string MeasureName = M.Name; string Aggregate = M.AggregateFunction.ToString(); string MeasureSourceColumn; if (M.Visible == true) { if (DI.Source.GetType().ToString() == "Microsoft.AnalysisServices.ColumnBinding") { ColumnBinding CB = (ColumnBinding)DI.Source; DT = d.Tables[CB.TableID]; MeasureSourceColumn = CB.ColumnID; } else { RowBinding RB = (RowBinding)DI.Source; DT = d.Tables[RB.TableID]; MeasureSourceColumn = "Rows"; } string MeasureSourceTable = DT.ExtendedProperties["DbTableName"].ToString(); //MessageBox.Show(MeasureSourceTable); //MessageBox.Show(MeasureSourceColumn); //MessageBox.Show(Aggregate); MA.Rows.Add(MeasureName, MeasureSourceTable, MeasureSourceColumn, Aggregate); } } return(MA); }
public static Table DeserializeTable(JObject json, Model model) { var tom = TOM.JsonSerializer.DeserializeObject <TOM.Table>(json.ToString()); tom.Name = model.Tables.GetNewName(tom.Name); // Make sure all measures in the table still have model-wide unique names: foreach (var m in tom.Measures.ToList()) { m.Name = MeasureCollection.GetNewName(model, m.Name); } var table = Table.CreateFromMetadata(model, tom); return(table); }
private void LoadFields() { String connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["OLAPConnection"].ConnectionString; using (AdomdConnection conn = new AdomdConnection(connectionString)) { conn.Open(); CubeDef cubeDef = null; foreach (CubeDef cube in conn.Cubes) { if (cube.Type == CubeType.Cube) { cubeDef = cube; break; } } if (cubeDef == null) { m_DimFieldCollection.Clear(); m_MeasureFieldCollection.Clear(); return; } DimensionCollection dimCollection = cubeDef.Dimensions; foreach (Dimension dim in dimCollection) { if (dim.DimensionType == DimensionTypeEnum.Measure) { continue; } HierarchyCollection hierarchyColl = dim.Hierarchies; foreach (Hierarchy hier in hierarchyColl) { m_DimFieldCollection.Add(new Olap.DimensionFieldInfo(hier)); } } MeasureCollection measureCollection = cubeDef.Measures; foreach (Measure m in measureCollection) { m_MeasureFieldCollection.Add(new Olap.MeasureFieldInfo(m)); } } }
public string GetReportSchemaXml(string server, string database, string cube, ref string openNodesXml) { AdomdConnection conn = null; try { // read openNodesXml StringCollection openNodes = new StringCollection(); if (openNodesXml != null && openNodesXml != "") { XmlDocument openNodesDoc = new XmlDocument(); openNodesDoc.LoadXml(openNodesXml); foreach (XmlElement el in openNodesDoc.GetElementsByTagName("ON")) { string s = el.GetAttribute("UN"); if (s != null && s != "" && !openNodes.Contains(s)) { openNodes.Add(s); } } } // create connection conn = this.GetConnection(server, database); // create xml document XmlDocument doc = new XmlDocument(); XmlElement rootEl = doc.CreateElement("SCHEMA"); doc.AppendChild(rootEl); // get cube CubeDef cubeDef = conn.Cubes[cube]; // dimensions foreach (Dimension dim in cubeDef.Dimensions) { XmlElement dimEl = doc.CreateElement("D"); dimEl.SetAttribute("UN", dim.UniqueName); dimEl.SetAttribute("N", dim.Name); rootEl.AppendChild(dimEl); // isopen attribute if (openNodes.Contains(dim.UniqueName)) { dimEl.SetAttribute("O", "1"); } // hierarchies foreach (Hierarchy hier in dim.Hierarchies) { XmlElement hierEl = doc.CreateElement("H"); hierEl.SetAttribute("UN", hier.UniqueName); hierEl.SetAttribute("N", hier.Name); dimEl.AppendChild(hierEl); // levels foreach (Level lev in hier.Levels) { XmlElement levEl = doc.CreateElement("L"); levEl.SetAttribute("UN", lev.UniqueName); levEl.SetAttribute("N", lev.Name); levEl.SetAttribute("LD", lev.LevelNumber.ToString()); hierEl.AppendChild(levEl); // default member under highest level if (lev.LevelNumber == 0) { // get default member by explicit property or as simply first member in level Member defMem = null; if (hier.DefaultMember != null && hier.DefaultMember != "") { defMem = (Member)this.GetSchemaObject(cubeDef, SchemaObjectType.ObjectTypeMember, hier.DefaultMember, false); } if (defMem == null && lev.MemberCount > 0) { defMem = lev.GetMembers(0, 1)[0]; } if (defMem != null) { XmlElement defMemEl = doc.CreateElement("DM"); defMemEl.SetAttribute("UN", defMem.UniqueName); defMemEl.SetAttribute("N", defMem.Name); defMemEl.SetAttribute("CC", defMem.ChildCount.ToString()); defMemEl.SetAttribute("LD", defMem.LevelDepth.ToString()); levEl.AppendChild(defMemEl); } } } // hier isopen attibute if (openNodes.Contains(hier.UniqueName)) { hierEl.SetAttribute("O", "1"); } // measures handled differently, always included regardless of isopen attribute if (dim.DimensionType == DimensionTypeEnum.Measure) { MeasureCollection mems = cubeDef.Measures; foreach (Measure m in mems) { AppendMeasure(hierEl, m, openNodes); } } else // other { // only if hier is open if (openNodes.Contains(hier.UniqueName)) { // members recursive MemberCollection mems = hier.Levels[0].GetMembers(); foreach (Member m in mems) { AppendMemberHierarchy(hierEl, m, openNodes); } } } } } // return return(doc.OuterXml); } finally { // dispose resources this.ReturnConnection(); } }
public MeasureGroup(string name) { Name = name; Measures = new MeasureCollection(); LinkedDimensions = new DimensionCollection(); }
public override void Load_InitData() { if (Mode != ControlMode.New) { return; } ASPxComboBox cbbKeyField; try { cbbKeyField = (ASPxComboBox)this.FindControl("cbbKeyField"); if (cbbKeyField == null) { return; } } #if DEBUG catch (Exception ex) { throw ex; } #else catch () { return; } #endif // Load fields String connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["OLAPConnection"].ConnectionString; using (AdomdConnection conn = new AdomdConnection(connectionString)) { conn.Open(); // Find a cube CubeDef cubeDef = null; CubeCollection cubeCollection = conn.Cubes; int numOfCube = cubeCollection.Count - 1; for (; numOfCube > 0; numOfCube--) { cubeDef = cubeCollection[numOfCube]; if (cubeDef.Type == CubeType.Cube) { break; } } if (this is wcNormalFilter || this is wcTimeFilter) { Olap.DimensionFieldInfoCollection fields = new Olap.DimensionFieldInfoCollection(); // Load dimension field DimensionCollection dimCollection = cubeDef.Dimensions; int numOfDim = dimCollection.Count; for (int dimIndex = 0; dimIndex < numOfDim; dimIndex++) { Dimension dim = dimCollection[dimIndex]; if (this is wcNormalFilter) { if (dim.UniqueName == "[ARDimTime]" || dim.DimensionType == DimensionTypeEnum.Measure) { continue; } } else if (this is wcNumFilter) { if (dim.DimensionType != DimensionTypeEnum.Measure) { continue; } } else // Date { if (dim.UniqueName != "[ARDimTime]") { continue; } } foreach (Hierarchy hier in dim.Hierarchies) { fields.Add(new Olap.DimensionFieldInfo(hier)); } } Helpers.SetDataSource(cbbKeyField, fields, "UniqueName", "Caption"); } else // wcNumFilter { Olap.MeasureFieldInfoCollection fields = new Olap.MeasureFieldInfoCollection(); MeasureCollection measureCollection = cubeDef.Measures; int numOfMeasure = measureCollection.Count; for (int mIndex = 0; mIndex < numOfMeasure; mIndex++) { Measure m = measureCollection[mIndex]; fields.Add(new Olap.MeasureFieldInfo(m)); } Helpers.SetDataSource(cbbKeyField, fields, "UniqueName", "Caption"); } } }