コード例 #1
0
        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();
            }
        }
コード例 #2
0
        /// <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);
        }