Пример #1
0
        /// <summary>
        /// Generate single dimension.
        /// </summary>
        /// <param name="objDatabase">DB instance.</param>
        /// <param name="objDataSourceView">DataSourceView instance.</param>
        /// <param name="strTableName">Table name.</param>
        /// <param name="strTableKeyName">Table key.</param>
        /// <returns>Dimension instance.</returns>
        private static object GenerateDimension(Database objDatabase, DataSourceView objDataSourceView, string strTableName, string strTableKeyName)
        {
            try
            {
                Dimension objDimension = new Dimension();

                //Add Dimension to the Database
                objDimension        = objDatabase.Dimensions.Add(strTableName);
                objDimension.Source = new DataSourceViewBinding(objDataSourceView.ID);
                DimensionAttributeCollection objDimensionAttributesColl = objDimension.Attributes;
                //Add Dimension Attributes
                DimensionAttribute objAttribute = objDimensionAttributesColl.Add(strTableKeyName);
                //Set Attribute usage and source
                objAttribute.Usage = AttributeUsage.Key;
                objAttribute.KeyColumns.Add(strTableName, strTableKeyName, OleDbType.Integer);

                objDimension.Update();

                return(objDimension);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error in Creating the Dimension, Attribute, Hierarchy, and MemberProperty Objects - GenerateDimension. Error Message -> " + ex.Message);
                return(null);
            }
        }
Пример #2
0
        private void GenerateDimension(CbDimension_M aCbDimension)
        {
            try
            {
                aCbDimension.DimensionObj = new Dimension();

                //Add Dimension to the Database
                aCbDimension.DimensionObj               = _CbDatabase.Dimensions.Add(aCbDimension.Name);
                aCbDimension.DimensionObj.Source        = new DataSourceViewBinding(_CbDataSourceView.ID);
                aCbDimension.DimensionObj.UnknownMember = UnknownMemberBehavior.Visible;
                aCbDimension.DimensionObj.StorageMode   = DimensionStorageMode.Molap;

                DimensionAttributeCollection objDimensionAttributesColl = aCbDimension.DimensionObj.Attributes;

                //Add attributes to dimension
                foreach (CbDimensionAttribute_M cbDimensionAttributeM in aCbDimension.AttributeList.Where(da => da.Include))
                {
                    DimensionAttribute objAttribute = objDimensionAttributesColl.Add(cbDimensionAttributeM.Name);
                    objAttribute.Usage = cbDimensionAttributeM.Usage;
                    objAttribute.AttributeHierarchyVisible = cbDimensionAttributeM.AttributeHierarchyVisible;
                    objAttribute.KeyColumns.Add(
                        CreateDataItem(aCbDimension.ReferenceToDsDwTableMap.DwTableName,
                                       cbDimensionAttributeM.ReferenceToDsDwColumnMap.DwColumn.Name,
                                       NullProcessing.UnknownMember,
                                       cbDimensionAttributeM.ReferenceToDsDwColumnMap.DwColumn.DataType
                                       ));
                }

                //Save dimension to database
                aCbDimension.DimensionObj.Update();
            }
            catch (Exception ex)
            {
                AppendLogLine("Error in creating a dimension. Error Message -> " + ex.Message);
                throw;
            }
        }
Пример #3
0
        public DataTable GetAttributesByDimension(Dimension D)
        {
            DimensionAttributeCollection DAC = D.Attributes;
            DataTable DT = new DataTable();

            DT.Columns.Add("Attribue Name");
            DT.Columns.Add("Table/View/Query");
            DT.Columns.Add("Source Key Column");
            DT.Columns.Add("Source Name Column");
            DT.Columns.Add("Usage");
            DT.Columns.Add("FriendlyName");
            DT.Columns.Add("TableType");

            DataSourceView DS = D.DataSourceView;
            DataSet        d  = new DataSet();

            d = DS.Schema;

            try
            {
                foreach (DimensionAttribute DA in DAC)
                {
                    //Console.Write(DA.Name + "\t|\t " + DA.Usage + " | ");
                    DataItemCollection DIC = DA.KeyColumns;
                    //DA.AttributeHierarchyEnabled;
                    //DA.DerivedFromTableId;
                    //DA.IsAggregatable;

                    foreach (DataItem DI in DIC)
                    {
                        ColumnBinding CB = (ColumnBinding)DI.Source;

                        string source     = DI.Source.ToString();
                        string NameColumn = DA.NameColumn.ToString();

                        DataTable VT = d.Tables[CB.TableID];

                        if (VT.ExtendedProperties["QueryDefinition"] != null)
                        {
                            DT.Rows.Add(DA.Name
                                        , VT.ExtendedProperties["QueryDefinition"].ToString()
                                        , source.Substring(source.IndexOf(".") + 1)
                                        , NameColumn.Substring(NameColumn.IndexOf(".") + 1)
                                        , DA.Usage
                                        , VT.ExtendedProperties["FriendlyName"]
                                        , "NamedQuery"
                                        );
                        }
                        else
                        {
                            DT.Rows.Add(DA.Name
                                        , VT.ExtendedProperties["DbTableName"]
                                        , source.Substring(source.IndexOf(".") + 1)
                                        , NameColumn.Substring(NameColumn.IndexOf(".") + 1)
                                        , DA.Usage
                                        , VT.ExtendedProperties["FriendlyName"]
                                        , VT.ExtendedProperties["TableType"]
                                        );
                        }

                        //Console.Write(DI.DataType + " | " + DI.Source + " | ");


                        //GetDataSourceViewDefinitionByTableID(VT);
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }
            return(DT);
        }