/// <summary> /// Converts the pe column. /// </summary> /// <param name="extras">The extras.</param> /// <returns>[0] extra rows before main paty, [1] extra rows after</returns> public static List <Enum>[] convertPEColumn(this PropertyEntryColumn extras) { List <PropertyEntryColumn> extraList = extras.getEnumListFromFlags <PropertyEntryColumn>(); List <Enum>[] output = { new List <Enum>(), new List <Enum>() }; foreach (PropertyEntryColumn pec in extraList) { switch (pec) { case PropertyEntryColumn.none: break; case PropertyEntryColumn.role_name: case PropertyEntryColumn.entry_unit: case PropertyEntryColumn.entry_importance: case PropertyEntryColumn.entry_description: case PropertyEntryColumn.property_description: output[1].Add(pec); break; default: case PropertyEntryColumn.entry_key: case PropertyEntryColumn.entry_name: case PropertyEntryColumn.role_letter: case PropertyEntryColumn.role_symbol: output[0].Add(pec); break; } } return(output); }
/// <summary> /// Maps to multiple keys /// </summary> /// <param name="key">The key.</param> /// <param name="value">The value.</param> /// <param name="__name">The name.</param> /// <param name="__description">The description.</param> /// <returns></returns> public PropertyEntry Add(Array key, object value, String __name, String __description) { PropertyEntry pe = new PropertyEntry(key, value, __name, __description); foreach (Object k in key) { if (ContainsKey(k)) { this[k] = value; } else { base.Add(k, value); } } foreach (PropertyEntryColumn pekey in pe.Keys) { if (!defaultTableColumn.HasFlag(pekey)) { _defaultTableColumn |= pekey; } } foreach (Object k in key) { pe.priority = entries.Count(); entries.Add(k, pe); } return(pe); }
#pragma warning disable CS1574 // XML comment has cref attribute 'isKeyValueColumn(imbSCI.Data.collection.PropertyEntryColumn)' that could not be resolved /// <summary> /// Get all non value (<see cref="aceCommonTypes.extensions.data.PropertyEntryColumnExtensions.isKeyValueColumn(imbSCI.Data.collection.PropertyEntryColumn)"/> columns into <see cref="PropertyCollection"/> /// </summary> /// <param name="key">The key.</param> /// <returns></returns> public PropertyCollection GetMetaForKey(Object key) #pragma warning restore CS1574 // XML comment has cref attribute 'isKeyValueColumn(imbSCI.Data.collection.PropertyEntryColumn)' that could not be resolved { var pe = entries[key]; Object input = null; PropertyCollection output = new PropertyCollection(); foreach (DictionaryEntry pair in pe) { input = pair.Value; Boolean copyOk = true; if (input is PropertyEntryColumn) { PropertyEntryColumn input_PropertyEntryColumn = (PropertyEntryColumn)input; if (input_PropertyEntryColumn.isKeyValueColumn()) { copyOk = false; } } if (copyOk) { output.Add(pair.Key, pair.Value); } } return(output); }
/// <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> /// Gets the right column value /// </summary> /// <param name="column">The column.</param> /// <param name="pce">The pce.</param> /// <param name="c">Row count - required if <see cref="imbSCI.Core.collection.PropertyEntryColumn.autocount_idcolumn"/> is the <c>column</c>.</param> /// <param name="autocount_format">The autocount format.</param> /// <returns></returns> public static object getColumnValue(this PropertyEntry column, PropertyCollectionExtended pce, int c, string autocount_format) { object vl = getColumnValue_Default; object key = column[PropertyEntryColumn.entry_key]; if (key is PropertyEntryColumn) { PropertyEntryColumn pec = (PropertyEntryColumn)key; switch (pec) { case PropertyEntryColumn.entry_name: vl = pce.name; break; case PropertyEntryColumn.entry_description: vl = pce.description; break; case PropertyEntryColumn.autocount_idcolumn: vl = c.ToString(autocount_format); break; default: vl = column.getColumn(pec, pce[key]); break; } } else { vl = pce[key]; } return(vl); }
/// <summary> /// To the column caption. /// </summary> /// <param name="column">The column.</param> /// <returns></returns> /// <exception cref="System.ArgumentOutOfRangeException"></exception> public static Int32 toColumnPriority(this PropertyEntryColumn column) { switch (column) { case PropertyEntryColumn.entry_name: case PropertyEntryColumn.entry_key: return(10); break; break; case PropertyEntryColumn.entry_description: return(150); break; case PropertyEntryColumn.entry_value: return(50); break; case PropertyEntryColumn.entry_valueAndUnit: return(90); break; case PropertyEntryColumn.role_letter: return(110); break; case PropertyEntryColumn.role_symbol: return(120); break; case PropertyEntryColumn.role_name: return(130); break; case PropertyEntryColumn.entry_unit: case PropertyEntryColumn.entry_unitname: return(110); break; case PropertyEntryColumn.entry_importance: return(200); break; default: return(100); } return(100); }
/// <summary> /// Builds the data table hor. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="items">The items.</param> /// <param name="extraColumn">The extra column.</param> /// <param name="columns">The columns.</param> /// <returns></returns> public static DataTable BuildDataTableHor <T>(this T items, PropertyEntryColumn extraColumn, params string[] columns) where T : IEnumerable, IObjectWithNameAndDescription { if (items is IObjectWithNameAndDescription) { IObjectWithNameAndDescription items_IObjectWithNameAndDescription = (IObjectWithNameAndDescription)items; return(items.BuildDataTableHorizontal(items_IObjectWithNameAndDescription.name, items_IObjectWithNameAndDescription.description, extraColumn, columns)); } return(items.BuildDataTableHorizontal("Instance list", "", extraColumn, columns)); }
/// <summary> /// Gets the columm value - applying special procedure for certain <c>PropertyEntryColumn</c> /// </summary> /// <param name="column">The column.</param> /// <param name="input">The input.</param> /// <returns></returns> public Object getColumn(PropertyEntryColumn column, Object input) { if (imbSciStringExtensions.isNullOrEmptyString(input)) { input = ""; } switch (column) { case PropertyEntryColumn.entry_importance: if (input is IValueWithImportanceInfo) { IValueWithImportanceInfo input_IValueWithImportanceInfo = (IValueWithImportanceInfo)input; if (input_IValueWithImportanceInfo.isValueInAlarmRange) { return(dataPointImportance.alarm); } } return(this[PropertyEntryColumn.entry_importance]); break; case PropertyEntryColumn.entry_value: if (input is IValueWithToString) { IValueWithToString input_IValueWithToString = (IValueWithToString)input; return(input_IValueWithToString.GetFormatedValue()); } return(input.toStringSafe()); break; case PropertyEntryColumn.entry_valueAndUnit: if (input is IValueWithToString) { IValueWithToString input_IValueWithToString = (IValueWithToString)input; return(input_IValueWithToString.GetFormatedValueAndUnit()); } return(imbSciStringExtensions.add(input.toStringSafe(), this[PropertyEntryColumn.entry_unit].ToString(), " ")); break; default: return(this[column]); break; } return(""); }
/// <summary> /// Builds dictionary with specified columns as key and value /// </summary> /// <param name="keyColumn">The key column.</param> /// <param name="valueColumn">The value column.</param> /// <returns></returns> public Dictionary <String, String> GetStringDictionary(PropertyEntryColumn keyColumn = PropertyEntryColumn.entry_key, PropertyEntryColumn valueColumn = PropertyEntryColumn.entry_value) { Dictionary <String, String> output = new Dictionary <string, string>(); foreach (KeyValuePair <object, PropertyEntry> p in entries) { output.Add(p.Value[keyColumn].toStringSafe(), p.Value[valueColumn].toStringSafe()); } return(output); }
public static Type toColumnType(this PropertyEntryColumn column) { switch (column) { case PropertyEntryColumn.autocount_idcolumn: case PropertyEntryColumn.entry_value: return(typeof(Int32)); break; default: return(typeof(String)); break; } }
/// <summary> /// Gets the right column value /// </summary> /// <param name="column">The column.</param> /// <param name="pce">The pce.</param> /// <param name="c">Row count - required if <see cref="PropertyEntryColumn.autocount_idcolumn"/> is the <c>column</c>.</param> /// <param name="autocount_format">The autocount format.</param> /// <returns></returns> public static object getColumnValue(this PropertyEntry column, object instance, int c, string autocount_format) { settingsEntriesForObject sef = new settingsEntriesForObject(instance, false); object vl = getColumnValue_Default; object key = column[PropertyEntryColumn.entry_key]; if (key is PropertyEntryColumn) { PropertyEntryColumn pec = (PropertyEntryColumn)key; switch (pec) { case PropertyEntryColumn.entry_name: vl = sef.spes[column.keyName].displayName; break; case PropertyEntryColumn.entry_description: vl = sef.spes[column.keyName].description; break; case PropertyEntryColumn.autocount_idcolumn: vl = c.ToString(autocount_format); break; default: //vl = column.getColumn(pec, [key]); break; } } else { vl = instance.GetType().GetProperty(column.keyName).GetValue(instance, null); // vl = instance.GetPropertyValue(column.keyName); if (sef.spes[column.keyName].type == typeof(int) || sef.spes[column.keyName].type == typeof(double)) { vl = string.Format(sef.spes[column.keyName].format, vl); //vl = String.Format(, ) } else { } } return(vl); }
public static DataRow SetDataRow(this DataTable dt, object source, PropertyEntryColumn extraColumn, settingsEntriesForObject seo = null) { if (seo == null) { seo = new settingsEntriesForObject(source); } DataRow dr = dt.NewRow(); foreach (DataColumn col in dt.Columns) { if (columnsToSkip.Contains(col.ColumnName)) { continue; } object val = null; // source.GetPropertyValue(col.ColumnName); throw new NotImplementedException(); if (val is IFormattable) { IFormattable valf = (IFormattable)val; if (col.ExtendedProperties.ContainsKey(templateFieldDataTable.col_format)) { string format = col.ExtendedProperties[templateFieldDataTable.col_format].toStringSafe(); if (col.AutoIncrement) { } else { val = valf.ToString(format, null); } } } if (col.ExtendedProperties.ContainsKey(templateFieldDataTable.col_expression)) { col.Expression = col.ExtendedProperties[templateFieldDataTable.col_expression].toStringSafe(); } dr[col] = val; } dt.Rows.Add(dr); return(dr); }
/// <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"); } }
public static Boolean isKeyValueColumn(this PropertyEntryColumn key) { if (key is PropertyEntryColumn) { PropertyEntryColumn key_PropertyEntryColumn = (PropertyEntryColumn)key; switch (key_PropertyEntryColumn) { case PropertyEntryColumn.entry_key: case PropertyEntryColumn.entry_value: case PropertyEntryColumn.entry_valueAndUnit: return(true); break; } } return(false); }
public static Boolean isCoreColumn(this Object key) { if (key is PropertyEntryColumn) { PropertyEntryColumn key_PropertyEntryColumn = (PropertyEntryColumn)key; switch (key_PropertyEntryColumn) { case PropertyEntryColumn.entry_key: case PropertyEntryColumn.entry_description: case PropertyEntryColumn.entry_name: case PropertyEntryColumn.entry_unit: return(true); break; } } return(false); }
/// <summary> /// Adds the specified key. /// </summary> /// <param name="key">The key.</param> /// <param name="value">The value.</param> /// <param name="__name">The name.</param> /// <param name="__description">The description.</param> /// <param name="__unit">The unit.</param> /// <param name="__letter">The letter.</param> /// <param name="__symbol">The symbol.</param> /// <returns></returns> public PropertyEntry Add(object key, object value, String __name, String __description, String __unit = "", String __letter = "", String __symbol = "") { if (key == "") { // key = __name.getFilename(); } if (ContainsKey(key)) { this[key] = value; } else { base.Add(key, value); } PropertyEntry pe = new PropertyEntry(key, value, __name, __description); if (!__unit.isNullOrEmpty()) { pe[PropertyEntryColumn.entry_unit] = __unit; } if (!__letter.isNullOrEmpty()) { pe[PropertyEntryColumn.role_letter] = __letter; } if (!__symbol.isNullOrEmpty()) { pe[PropertyEntryColumn.role_symbol] = __symbol; } foreach (PropertyEntryColumn pekey in pe.Keys) { if (!defaultTableColumn.HasFlag(pekey)) { _defaultTableColumn |= pekey; } } pe.priority = entries.Count(); entries.Add(key, pe); return(pe); }
/// <summary> /// Builds the consolidated column dictionary scanning all <see cref="imbSCI.Core.collection.PropertyCollectionExtended"/> items. /// </summary> /// <remarks> /// <para>If <c>__allowedColumns</c> are not specified it will include any newly column found inside collection</para> /// </remarks> /// <param name="obligatoryColumns">The obligatory columns.</param> /// <param name="__allowedColumns">The allowed columns.</param> /// <returns>Set of columns ready to be used for DataTable creation and for similar tasks</returns> public static PropertyEntryDictionary buildColumnDictionary(this PropertyCollectionExtended source, PropertyEntryColumn obligatoryColumns, params object[] __allowedColumns) { List <PropertyEntryColumn> columnList = obligatoryColumns.getEnumListFromFlags <PropertyEntryColumn>(); List <object> allowedColumns = __allowedColumns.getFlatList <object>(); PropertyEntryDictionary output = new PropertyEntryDictionary(); foreach (object key in source.Keys) { if (!output.ContainsKey(key)) { bool allowed = !allowedColumns.Any(); if (allowedColumns.Contains(key)) { allowed = true; } if (allowed) { output.Add(key, source.entries[key]); } } } foreach (PropertyEntryColumn c in columnList) { if (!output.ContainsKey(c)) { PropertyEntry pe = new PropertyEntry(c, "", c.toColumnCaption(false), c.getDescriptionForKey()); output.Add(c, pe); } } //pel.Sort((x, y) => x.priority.CompareTo(y.priority)); return(output); }
/// <summary> /// Builds the data table hor dictionary. /// </summary> /// <typeparam name="TKey">The type of the key.</typeparam> /// <typeparam name="T"></typeparam> /// <param name="itemKeys">The item keys.</param> /// <param name="columns">The columns.</param> /// <returns></returns> public static DataTable BuildDataTableHorDictionary <TKey, T>(this IDictionary <TKey, T> itemKeys, string valuePath, string KeyCaption, PropertyEntryColumn extraColumn, string[] columns) { object source = null; TKey firstKey; foreach (var pair in itemKeys) { firstKey = pair.Key; source = pair.Value.imbGetPropertySafe(valuePath); break; } var seo = new settingsEntriesForObject(source); DataTable dt = new DataTable(typeof(T).Name); DataColumn dcKey = dt.Columns.Add(KEYCOLUMN); dcKey.Caption = KeyCaption; source.BuildDataShema(columns, extraColumn, seo, dt); List <Enum>[] output = convertPEColumn(extraColumn); if (extraColumn != PropertyEntryColumn.none) { foreach (PropertyEntryColumn extra in output[0]) { dt.AddExtraRow(extra); } } int c = 0; foreach (var pair in itemKeys) { object it = pair.Value.imbGetPropertySafe(valuePath); string key = pair.Key.toStringSafe(); DataRow dr = dt.SetDataRow(it, extraColumn, seo); dr[dcKey] = key; c++; } if (extraColumn != PropertyEntryColumn.none) { foreach (PropertyEntryColumn extra in output[1]) { dt.AddExtraRow(extra); } } //dt.TableName = title; //dt.ExtendedProperties[templateFieldDataTable.data_tabledesc] = description; //dt.ExtendedProperties[templateFieldDataTable.data_tablename] = title; dt.ExtendedProperties[templateFieldDataTable.data_tablescount] = c; return(dt); }
/// <summary> /// Builds the data table with columns specified - order of columns as specified /// </summary> /// <param name="columns">The columns.</param> /// <returns></returns> public DataTable getDataTable(params PropertyEntryColumn[] columns) { DataTable output = new DataTable(); DataColumn dc_importance = null; output.TableName = name; //output.SetTitle(name); output.ExtendedProperties[templateFieldDataTable.description] = description; output.ExtendedProperties[templateFieldDataTable.data_rowcounttotal] = Count; // output.ExtendedProperties[templateFieldStyling.color_paletteRole] = palete; List <PropertyEntryColumn> columnList = columns.ToList(); if ((!columnList.Any()) || columnList.Contains(PropertyEntryColumn.none)) { columnList = defaultTableColumn.getEnumListFromFlags <PropertyEntryColumn>(); } Int32 ci = 0; foreach (PropertyEntryColumn column in columnList) { if (column != PropertyEntryColumn.none) { DataColumn dc = output.Columns.Add(); column.setDataColumn(dc); if (column == PropertyEntryColumn.entry_importance) { dc_importance = dc; } } } if (autoIncludeImportance) { if (dc_importance == null) { DataColumn dc = output.Columns.Add(); PropertyEntryColumn.entry_importance.setDataColumn(dc); dc.ExtendedProperties[templateFieldStyling.render_isHidden] = true; dc_importance = dc; } } PropertyEntry entryMeta = null; String autocount_format = "D2"; if (Count > 99) { autocount_format = "D3"; } List <PropertyEntry> pel = entries.Values.ToList(); pel.Sort((x, y) => x.priority.CompareTo(y.priority)); Int32 c = 1; foreach (PropertyEntry entry in pel) { DataRow dr = output.NewRow(); //entryMeta = entries[entry[PropertyEntryColumn.entry_key]; foreach (DataColumn dc in output.Columns) { PropertyEntryColumn column = (PropertyEntryColumn)dc.ExtendedProperties[templateFieldDataTable.col_name]; Object vl = "--"; switch (column) { case PropertyEntryColumn.autocount_idcolumn: vl = c.ToString(autocount_format); break; default: vl = entry.getColumn(column, this[entry[PropertyEntryColumn.entry_key]]); break; } if (imbSciStringExtensions.isNullOrEmptyString(vl)) { vl = " "; } if (column == PropertyEntryColumn.autocount_idcolumn) { vl = c; } dr[dc] = vl; } output.Rows.Add(dr); c++; } return(output); }
/// <summary> /// Sets the data column according to PropertyEntryColumn /// </summary> /// <param name="column">The column.</param> /// <param name="tableColumn">The table column.</param> /// <exception cref="System.ArgumentOutOfRangeException"></exception> public static void setDataColumn(this PropertyEntryColumn column, DataColumn tableColumn) { tableColumn.Caption = column.toColumnCaption(false); //tableColumn.SetHeading(column.toColumnCaption(false)); tableColumn.ColumnName = "_" + column.ToString(); tableColumn.ExtendedProperties[templateFieldStyling.text_horizontalAligment] = printHorizontal.left; tableColumn.ExtendedProperties[templateFieldStyling.render_isHidden] = false; tableColumn.ExtendedProperties[templateFieldDataTable.col_name] = column; //tableColumn.ExtendedProperties[templateFieldStyling.color_variationRole] = acePaletteVariationRole.none; tableColumn.ExtendedProperties[templateFieldStyling.color_variationAdjustment] = 0; String desc = column.getDescriptionForKey(); switch (column) { case PropertyEntryColumn.entry_key: tableColumn.DataType = typeof(String); break; case PropertyEntryColumn.entry_name: tableColumn.DataType = typeof(String); tableColumn.ExtendedProperties[templateFieldStyling.color_variationAdjustment] = 1; //desc = "Human-readable name of the property"; break; case PropertyEntryColumn.property_description: case PropertyEntryColumn.entry_description: tableColumn.DataType = typeof(String); //desc = "About / info on the property"; break; case PropertyEntryColumn.entry_value: tableColumn.DataType = typeof(String); tableColumn.ExtendedProperties[templateFieldStyling.color_variationAdjustment] = 2; tableColumn.ExtendedProperties[templateFieldStyling.text_horizontalAligment] = printHorizontal.right; // desc = "Formated value"; break; case PropertyEntryColumn.entry_valueAndUnit: tableColumn.DataType = typeof(String); tableColumn.ExtendedProperties[templateFieldStyling.text_horizontalAligment] = printHorizontal.right; tableColumn.ExtendedProperties[templateFieldStyling.color_variationAdjustment] = 2; // desc = "Formated value with unit sufix"; break; case PropertyEntryColumn.role_letter: tableColumn.DataType = typeof(String); // desc = "Letter asociated with the role of the property"; break; case PropertyEntryColumn.role_symbol: tableColumn.DataType = typeof(String); // desc = "Symbol associated with the role of the property"; break; case PropertyEntryColumn.role_name: tableColumn.DataType = typeof(String); // desc = "Descriptive name of the property role"; break; case PropertyEntryColumn.entry_unit: tableColumn.DataType = typeof(String); tableColumn.ExtendedProperties[templateFieldStyling.color_variationAdjustment] = 1; // desc = "The unit short name - abbr./sufix"; break; case PropertyEntryColumn.entry_unitname: tableColumn.DataType = typeof(String); // desc = "Name of the property unit"; break; case PropertyEntryColumn.entry_importance: // desc = "Remarks on property relevance and/or on alarming value"; tableColumn.DataType = typeof(String); break; default: throw new ArgumentOutOfRangeException(); } tableColumn.ExtendedProperties[templateFieldDataTable.col_desc] = desc; // return column.ToString(); }
public static String getDescriptionForKey(this PropertyEntryColumn column) { String desc = ""; switch (column) { case PropertyEntryColumn.entry_key: desc = "Internaly used property name - in source code, object model, database, xml, rdf ... "; break; case PropertyEntryColumn.entry_name: desc = "Human-readable name of the property"; break; case PropertyEntryColumn.entry_description: desc = "About / info on the property"; break; case PropertyEntryColumn.entry_value: desc = "Formated value"; break; case PropertyEntryColumn.entry_valueAndUnit: desc = "Formated value with unit sufix"; break; case PropertyEntryColumn.role_letter: desc = "Letter asociated with the role of the property"; break; case PropertyEntryColumn.role_symbol: desc = "Symbol associated with the role of the property"; break; case PropertyEntryColumn.role_name: desc = "Descriptive name of the property role"; break; case PropertyEntryColumn.entry_unit: desc = "The unit short name - abbr./sufix"; break; case PropertyEntryColumn.entry_unitname: desc = "Name of the property unit"; break; case PropertyEntryColumn.entry_importance: desc = "Remarks on property relevance and/or on alarming value"; break; default: return(desc.ToString()); //imbTypology //desc = break; } return(desc); }
/// <summary> /// Adds row with extra information /// </summary> /// <param name="dt">The dt.</param> /// <param name="columnInfo">The column information.</param> /// <param name="widthLimit">The width limit.</param> /// <returns></returns> public static DataRow AddExtraRow(this DataTable dt, PropertyEntryColumn extra, int widthLimit = 25) => AddExtraRow(dt, (Enum)extra, widthLimit);
/// <summary> /// Adds row with extra information /// </summary> /// <param name="dt">The dt.</param> /// <param name="columnInfo">The column information.</param> /// <param name="widthLimit">The width limit.</param> /// <returns></returns> public static DataRow AddExtraRowInfo(this DataTable dt, PropertyEntryColumn columnInfo, int widthLimit = 25) { return(dt.AddExtraRow(columnInfo, widthLimit)); }
/// <summary> /// To the column caption. /// </summary> /// <param name="column">The column.</param> /// <returns></returns> /// <exception cref="System.ArgumentOutOfRangeException"></exception> public static String toColumnCaption(this PropertyEntryColumn column, Boolean showException = true) { switch (column) { case PropertyEntryColumn.entry_key: return("Key"); break; case PropertyEntryColumn.entry_name: return("Name"); break; case PropertyEntryColumn.entry_description: return("Description"); break; case PropertyEntryColumn.entry_value: return("Value"); break; case PropertyEntryColumn.entry_valueAndUnit: return("Value"); break; case PropertyEntryColumn.role_letter: return("Letter"); break; case PropertyEntryColumn.role_symbol: return("Symbol"); break; case PropertyEntryColumn.role_name: return("Role"); break; case PropertyEntryColumn.entry_unit: return("Unit"); break; case PropertyEntryColumn.entry_unitname: return("Unit"); break; case PropertyEntryColumn.entry_importance: return("Relevance"); break; case PropertyEntryColumn.none: return(" -- "); break; default: if (showException) { throw new ArgumentOutOfRangeException(nameof(column), "toColumnCaption failed to find string for [" + column.ToString() + "] in PropertyEntryColumnExtensions - toColumnCaption()"); } return(column.ToString()); break; } return(column.ToString()); }
protected virtual DataColumn addStandardColumnShema(DataTable shema, dataUnitPresenter presenter, PropertyEntryColumn pec) { string name = pec.toColumnCaption(false); string desc = pec.getDescriptionForKey(); DataColumn dc = shema.Columns.Add(pec.toStringSafe()); dc.ColumnName = pec.toStringSafe(); dc.Caption = name; dc.DataType = pec.toColumnType(); dc.ExtendedProperties[templateFieldDataTable.col_caption] = name; dc.ExtendedProperties[templateFieldDataTable.col_desc] = desc; dc.ExtendedProperties[templateFieldDataTable.col_format] = ""; dc.ExtendedProperties[templateFieldDataTable.col_group] = ""; dc.ExtendedProperties[templateFieldDataTable.col_priority] = pec.toColumnPriority(); dc.ExtendedProperties[templateFieldDataTable.col_type] = typeof(string); return(dc); }
public PropertyEntry Set(PropertyEntryColumn column, Object value) { //this[templateFieldDataTable.col_type] = value; add(column, value, false); return(this); }
/// <summary> /// Builds the data table using reflection and selected columns. Supports formating instruction, expression and other advanced atributes /// </summary> /// <param name="items">The items.</param> /// <param name="title">The title.</param> /// <param name="description">The description.</param> /// <param name="columns">The columns.</param> /// <returns></returns> public static DataTable BuildDataTableHorizontal(this IEnumerable items, string title, string description, PropertyEntryColumn extraColumn, string[] columns) { object source = null; foreach (object it in items) { source = it; break; } if (source == null) { return(null); } var seo = new settingsEntriesForObject(source); DataTable dt = source.BuildDataShema(columns, extraColumn, seo); List <Enum>[] output = convertPEColumn(extraColumn); if (extraColumn != PropertyEntryColumn.none) { foreach (PropertyEntryColumn extra in output[0]) { dt.AddExtraRow(extra); } } int c = 0; foreach (object it in items) { dt.SetDataRow(it, extraColumn, seo); c++; } if (extraColumn != PropertyEntryColumn.none) { foreach (PropertyEntryColumn extra in output[1]) { dt.AddExtraRow(extra); } } dt.TableName = title; dt.ExtendedProperties[templateFieldDataTable.data_tabledesc] = description; dt.ExtendedProperties[templateFieldDataTable.data_tablename] = title; dt.ExtendedProperties[templateFieldDataTable.data_tablescount] = c; return(dt); }