private void CreateCube(string cubeFilePath) { var contents = File.ReadAllText(cubeFilePath); var dataSetDesc = DataSetDescriptorBuilder.Build(contents); var dataSet = DataSetBuilder.BuilDataSet(dataSetDesc, _dbBridge); var doc = XElement.Parse(contents); Cube = OlapCubeBuilder.BuildCube(doc, dataSetDesc, dataSet); if (checkBoxUseEditor.Checked) { Cube.ShowEditor(); } }
/// <summary> /// Returns a new <see cref="TOLAPCube"/> /// </summary> /// <returns>A new <see cref="TOLAPCube"/></returns> public TOLAPCube Build() { _cube = new TOLAPCube { DataSet = _dataSet }; var ns = _config.Name.Namespace; // add measures foreach (var m in _config.Descendants(ns + "Measure")) { var measure = _cube.AddMeasure( _dataSet.Tables[(string)m.Attribute("sourceTable")], (string)m.Attribute("sourceField"), (string)m.Attribute("displayName")); var aggregateFunction = (string)m.Attribute("aggregateFunction"); if (aggregateFunction != null) { measure.AggregateFunction = (TFunction)Enum.Parse(typeof(TFunction), aggregateFunction, true); } var format = (string)m.Attribute("format"); if (format != null) { measure.DefaultFormat = format; } } // add dimentions foreach (var d in _config.Descendants(ns + "Dimention")) { var dimentionName = (string)d.Attribute("displayName"); var dimention = _cube.AddDimension(dimentionName); // add flat hierarchies foreach (var h in d.Elements(ns + "Hierarchy")) { CreateHierarchy(dimentionName, dimention, h); } // add multi-level hierarchies foreach (var m in d.Elements(ns + "Multilevel")) { // add sub-flat hierarchies foreach (var h in m.Elements(ns + "Hierarchy")) { var hierarchy = CreateHierarchy(dimentionName, dimention, h); foreach (var a in h.Elements(ns + "Attribute")) { var displayName = (string)a.Attribute("displayName"); var sourceField = (string)a.Attribute("sourceField"); var att = new TInfoAttribute { DisplayMode = AttributeDispalyMode.AsColumn, DisplayName = displayName, SourceField = sourceField, SourceFieldType = _dataSet .Tables[(string)h.Attribute("sourceTable")] .Columns[sourceField] .DataType }; hierarchy.InfoAttributes.Add(att); } _cube.MakeUpCompositeHierarchy(dimentionName, (string)m.Attribute("name"), hierarchy); } } } return(_cube); }