using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Collections; namespace Common { /// /// FixDBManager 的摘要说明。 /// public sealed class FixDBManager { public FixDBManager() { // // TODO: 在此处添加构造函数逻辑 // } public static string MsgCaption = "新钢冷轧工程MES系统"; public static object[] FixValues(object[] values) { for ( int i = 0 ;i< values.Length ;i++) { if (values[i] == null) { values[i] = DBNull.Value ; } else if(values[i].GetType().FullName == "System.String") { values[i] = ((string)values[i]).Length != 0? values[i]: DBNull.Value; } } return values; } public static string CheckNullStr(object obj) { if(obj == null || obj.GetType() == typeof(System.DBNull)) { return ""; } else { return Convert.ToString(obj); } } public static int CheckNullInt(object obj) { if(obj == null || obj.GetType() == typeof(System.DBNull)) { return 0; } else { return Convert.ToInt32(obj); } } public static System.Decimal CheckNullDecimal(object obj) { if(obj == null || obj.GetType() == typeof(System.DBNull)) { return 0; } else { return Convert.ToDecimal(obj); } } public static string splitArray(object obj, char splitor) { IList checkedItems = null; string checkedItem = ""; StringBuilder str = new StringBuilder(); checkedItems = obj as IList; if (checkedItems != null) { for (int i = 0; i < checkedItems.Count; i++) { // Each item in the list will be the value in the row that corresponds // to the ValueMember of the combo str = str.Append(splitor).Append((string)checkedItems[i]); } } checkedItem = str.ToString(); return checkedItem; } public static void Init_ComboControl(System.Windows.Forms.Control ComboControl, string TableName, string _displayMember, string _valueMember, ref System.Data.DataSet dst) { try { switch (ComboControl.GetType().ToString()) { case "Infragistics.Win.UltraWinGrid.UltraCombo": if (!dst.Tables.Contains(TableName)) { MessageBox.Show("绑定表:" + TableName + "不存在,不能对控件" + ComboControl.Name + "进行初始化!"); return; } System.Data.DataTable newTable = dst.Tables[TableName].Copy(); newTable.TableName = TableName; System.Data.DataRow newRow = newTable.NewRow(); for (int i = 0; i < dst.Tables[TableName].Columns.Count; i++) { newRow[i] = System.DBNull.Value; } newTable.Rows.Add(newRow); newTable.AcceptChanges(); ((Infragistics.Win.UltraWinGrid.UltraCombo)ComboControl).DataSource = new System.Data.DataView(newTable); ((Infragistics.Win.UltraWinGrid.UltraCombo)ComboControl).DisplayMember = _displayMember; ((Infragistics.Win.UltraWinGrid.UltraCombo)ComboControl).ValueMember = _valueMember; foreach (System.Data.DataColumn col in dst.Tables[TableName].Columns) { if (col.ColumnName != _displayMember) { ((Infragistics.Win.UltraWinGrid.UltraCombo)ComboControl).DisplayLayout.Bands[TableName].Columns[col.ColumnName].Hidden = true; } else { ((Infragistics.Win.UltraWinGrid.UltraCombo)ComboControl).DisplayLayout.Bands[TableName].Columns[col.ColumnName].Band.ColHeadersVisible = false; ((Infragistics.Win.UltraWinGrid.UltraCombo)ComboControl).DisplayLayout.Bands[TableName].Columns[col.ColumnName].Width = ((Infragistics.Win.UltraWinGrid.UltraCombo)ComboControl).Width; } } break; } } catch (System.Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); } } public static System.Data.DataTable ConvertToDataTable(IList list,System.Data.DataTable btable) { DataTable table = new DataTable(); if ((list != null) && (list.Count > 0)) { Hashtable hashtable2; Hashtable hashtable = (Hashtable)list[0]; foreach (DictionaryEntry entry in hashtable) { string columnName = entry.Key.ToString(); table.Columns.Add(columnName, btable.Columns[columnName].DataType); } for (int i = 0; i < list.Count; i++) { hashtable = (Hashtable)list[i]; ArrayList list2 = new ArrayList(); foreach (DictionaryEntry entry in hashtable) { if ((entry.Value != null) && typeof(Hashtable).Equals(entry.Value.GetType())) { hashtable2 = (Hashtable)entry.Value; list2.Add(hashtable2["value"]); } else { list2.Add(entry.Value); } } table.LoadDataRow(list2.ToArray(), true); } } return table; } public static void SetGridDropDownList(string MasterColumnName, string TableName, int ColumnWidth, Infragistics.Win.UltraWinGrid.UltraGridBase Grid, System.Data.DataTable DropTable, string ValueMember, string DisplayMember) { try { Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; Infragistics.Win.UltraWinGrid.UltraDropDown ultraCombo = new Infragistics.Win.UltraWinGrid.UltraDropDown(); Grid.FindForm().Controls.Add(ultraCombo); ultraCombo.DisplayMember = DisplayMember; ultraCombo.ValueMember = ValueMember; ultraCombo.Visible = false; ultraCombo.DataSource = DropTable.DefaultView; ultraCombo.Width = ColumnWidth; foreach (System.Data.DataColumn col in DropTable.Columns) { if (col.ColumnName != DisplayMember) { ultraCombo.DisplayLayout.Bands[0].Columns[col.ColumnName].Hidden = true; } else { ultraCombo.DisplayLayout.Bands[0].Columns[col.ColumnName].Band.ColHeadersVisible = false; ultraCombo.DisplayLayout.Bands[0].Columns[col.ColumnName].Width = ultraCombo.Width; } } Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].ValueList = ultraCombo; Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].CellAppearance.TextHAlign = Infragistics.Win.HAlign.Left; Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].CellAppearance.TextVAlign = Infragistics.Win.VAlign.Middle; } catch (System.Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); } } public static void SetGridCheckBox(string MasterColumnName, string TableName, int ColumnWidth, Infragistics.Win.UltraWinGrid.UltraGridBase Grid) { try { Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].Hidden = false; Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].Header.Appearance.TextHAlign = Infragistics.Win.HAlign.Center; Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.CheckBox; } catch (System.Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); } } public static void SetCellActivation(string MasterColumnName, string TableName, Infragistics.Win.UltraWinGrid.UltraGridBase Grid, string Activation) { try { switch (Activation.Trim().ToUpper()) { case "NOEDIT": Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit; //dst.Tables[TableName].Columns[MasterColumnName].ReadOnly = true; break; case "ACTIVATEONLY": Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].CellActivation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly; //dst.Tables[TableName].Columns[MasterColumnName].ReadOnly = true; break; case "ALLOWEDIT": Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].CellActivation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit; //dst.Tables[TableName].Columns[MasterColumnName].ReadOnly = false; break; case "DISABLED": Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].CellActivation = Infragistics.Win.UltraWinGrid.Activation.Disabled; //dst.Tables[TableName].Columns[MasterColumnName].ReadOnly = true; break; default: Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit; break; } } catch (System.Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); } } } }