/// <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); } }
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; } }
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); }