/// <summary> /// Builds the data table. /// </summary> /// <param name="source">The source.</param> /// <param name="columns">The columns.</param> /// <returns></returns> public static DataTable BuildDataShema(this object source, string[] columns, PropertyEntryColumn extraColumn, settingsEntriesForObject seo = null, DataTable dt = null) { if (seo == null) { seo = new settingsEntriesForObject(source); } if (dt == null) { dt = new DataTable(source.GetType().Name); } dt.ExtendedProperties[templateFieldDataTable.shema_sourceinstance] = source; dt.ExtendedProperties[templateFieldDataTable.shema_classname] = source.GetType().Name; dt.ExtendedProperties[templateFieldDataTable.shema_dictionary] = source.buildPCE(true, null); if (extraColumn.HasFlag(PropertyEntryColumn.autocount_idcolumn)) { dt.Columns.Add(IDCOLUMN).AutoIncrement = true; } foreach (string col in columns) { dt.AddToShema(col, source, seo); } return(dt); }
/// <summary> /// Defines the shema for statistics -- horisontal /// </summary> /// <param name="dc">The dc.</param> /// <param name="columns">The columns.</param> public static void DefineShemaForStatistics(this DataTable dc, PropertyEntryColumn columns = PropertyEntryColumn.entry_name | PropertyEntryColumn.entry_value | PropertyEntryColumn.role_letter | PropertyEntryColumn.entry_description) { if (columns.HasFlag(PropertyEntryColumn.entry_name)) { dc.Columns.Add("dc_name").SetHeading("Measure"); } if (columns.HasFlag(PropertyEntryColumn.role_letter)) { dc.Columns.Add("dc_letter").SetHeading(" - "); } if (columns.HasFlag(PropertyEntryColumn.entry_value)) { dc.Columns.Add("dc_value").SetHeading("Value"); } if (columns.HasFlag(PropertyEntryColumn.entry_description)) { dc.Columns.Add("dc_description").SetHeading("Description"); } }