FixDBManager.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.Collections;
  10. namespace Common
  11. {
  12. /// <summary>
  13. /// FixDBManager 的摘要说明。
  14. /// </summary>
  15. public sealed class FixDBManager
  16. {
  17. public FixDBManager()
  18. {
  19. //
  20. // TODO: 在此处添加构造函数逻辑
  21. //
  22. }
  23. public static string MsgCaption = "新钢冷轧工程MES系统";
  24. public static object[] FixValues(object[] values)
  25. {
  26. for ( int i = 0 ;i< values.Length ;i++)
  27. {
  28. if (values[i] == null)
  29. {
  30. values[i] = DBNull.Value ;
  31. }
  32. else if(values[i].GetType().FullName == "System.String")
  33. {
  34. values[i] = ((string)values[i]).Length != 0? values[i]: DBNull.Value;
  35. }
  36. }
  37. return values;
  38. }
  39. public static string CheckNullStr(object obj)
  40. {
  41. if(obj == null || obj.GetType() == typeof(System.DBNull))
  42. {
  43. return "";
  44. }
  45. else
  46. {
  47. return Convert.ToString(obj);
  48. }
  49. }
  50. public static int CheckNullInt(object obj)
  51. {
  52. if(obj == null || obj.GetType() == typeof(System.DBNull))
  53. {
  54. return 0;
  55. }
  56. else
  57. {
  58. return Convert.ToInt32(obj);
  59. }
  60. }
  61. public static System.Decimal CheckNullDecimal(object obj)
  62. {
  63. if(obj == null || obj.GetType() == typeof(System.DBNull))
  64. {
  65. return 0;
  66. }
  67. else
  68. {
  69. return Convert.ToDecimal(obj);
  70. }
  71. }
  72. public static string splitArray(object obj, char splitor)
  73. {
  74. IList checkedItems = null;
  75. string checkedItem = "";
  76. StringBuilder str = new StringBuilder();
  77. checkedItems = obj as IList;
  78. if (checkedItems != null)
  79. {
  80. for (int i = 0; i < checkedItems.Count; i++)
  81. {
  82. // Each item in the list will be the value in the row that corresponds
  83. // to the ValueMember of the combo
  84. str = str.Append(splitor).Append((string)checkedItems[i]);
  85. }
  86. }
  87. checkedItem = str.ToString();
  88. return checkedItem;
  89. }
  90. public static void Init_ComboControl(System.Windows.Forms.Control ComboControl, string TableName, string _displayMember, string _valueMember, ref System.Data.DataSet dst)
  91. {
  92. try
  93. {
  94. switch (ComboControl.GetType().ToString())
  95. {
  96. case "Infragistics.Win.UltraWinGrid.UltraCombo":
  97. if (!dst.Tables.Contains(TableName))
  98. {
  99. MessageBox.Show("绑定表:" + TableName + "不存在,不能对控件" + ComboControl.Name + "进行初始化!");
  100. return;
  101. }
  102. System.Data.DataTable newTable = dst.Tables[TableName].Copy();
  103. newTable.TableName = TableName;
  104. System.Data.DataRow newRow = newTable.NewRow();
  105. for (int i = 0; i < dst.Tables[TableName].Columns.Count; i++)
  106. {
  107. newRow[i] = System.DBNull.Value;
  108. }
  109. newTable.Rows.Add(newRow);
  110. newTable.AcceptChanges();
  111. ((Infragistics.Win.UltraWinGrid.UltraCombo)ComboControl).DataSource = new System.Data.DataView(newTable);
  112. ((Infragistics.Win.UltraWinGrid.UltraCombo)ComboControl).DisplayMember = _displayMember;
  113. ((Infragistics.Win.UltraWinGrid.UltraCombo)ComboControl).ValueMember = _valueMember;
  114. foreach (System.Data.DataColumn col in dst.Tables[TableName].Columns)
  115. {
  116. if (col.ColumnName != _displayMember)
  117. {
  118. ((Infragistics.Win.UltraWinGrid.UltraCombo)ComboControl).DisplayLayout.Bands[TableName].Columns[col.ColumnName].Hidden = true;
  119. }
  120. else
  121. {
  122. ((Infragistics.Win.UltraWinGrid.UltraCombo)ComboControl).DisplayLayout.Bands[TableName].Columns[col.ColumnName].Band.ColHeadersVisible = false;
  123. ((Infragistics.Win.UltraWinGrid.UltraCombo)ComboControl).DisplayLayout.Bands[TableName].Columns[col.ColumnName].Width = ((Infragistics.Win.UltraWinGrid.UltraCombo)ComboControl).Width;
  124. }
  125. }
  126. break;
  127. }
  128. }
  129. catch (System.Exception ex)
  130. {
  131. System.Diagnostics.Debug.WriteLine(ex.ToString());
  132. }
  133. }
  134. public static System.Data.DataTable ConvertToDataTable(IList list,System.Data.DataTable btable)
  135. {
  136. DataTable table = new DataTable();
  137. if ((list != null) && (list.Count > 0))
  138. {
  139. Hashtable hashtable2;
  140. Hashtable hashtable = (Hashtable)list[0];
  141. foreach (DictionaryEntry entry in hashtable)
  142. {
  143. string columnName = entry.Key.ToString();
  144. table.Columns.Add(columnName, btable.Columns[columnName].DataType);
  145. }
  146. for (int i = 0; i < list.Count; i++)
  147. {
  148. hashtable = (Hashtable)list[i];
  149. ArrayList list2 = new ArrayList();
  150. foreach (DictionaryEntry entry in hashtable)
  151. {
  152. if ((entry.Value != null) && typeof(Hashtable).Equals(entry.Value.GetType()))
  153. {
  154. hashtable2 = (Hashtable)entry.Value;
  155. list2.Add(hashtable2["value"]);
  156. }
  157. else
  158. {
  159. list2.Add(entry.Value);
  160. }
  161. }
  162. table.LoadDataRow(list2.ToArray(), true);
  163. }
  164. }
  165. return table;
  166. }
  167. public static void SetGridDropDownList(string MasterColumnName, string TableName, int ColumnWidth, Infragistics.Win.UltraWinGrid.UltraGridBase Grid, System.Data.DataTable DropTable, string ValueMember, string DisplayMember)
  168. {
  169. try
  170. {
  171. Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  172. Infragistics.Win.UltraWinGrid.UltraDropDown ultraCombo = new Infragistics.Win.UltraWinGrid.UltraDropDown();
  173. Grid.FindForm().Controls.Add(ultraCombo);
  174. ultraCombo.DisplayMember = DisplayMember;
  175. ultraCombo.ValueMember = ValueMember;
  176. ultraCombo.Visible = false;
  177. ultraCombo.DataSource = DropTable.DefaultView;
  178. ultraCombo.Width = ColumnWidth;
  179. foreach (System.Data.DataColumn col in DropTable.Columns)
  180. {
  181. if (col.ColumnName != DisplayMember)
  182. {
  183. ultraCombo.DisplayLayout.Bands[0].Columns[col.ColumnName].Hidden = true;
  184. }
  185. else
  186. {
  187. ultraCombo.DisplayLayout.Bands[0].Columns[col.ColumnName].Band.ColHeadersVisible = false;
  188. ultraCombo.DisplayLayout.Bands[0].Columns[col.ColumnName].Width = ultraCombo.Width;
  189. }
  190. }
  191. Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].ValueList = ultraCombo;
  192. Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].CellAppearance.TextHAlign = Infragistics.Win.HAlign.Left;
  193. Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].CellAppearance.TextVAlign = Infragistics.Win.VAlign.Middle;
  194. }
  195. catch (System.Exception ex)
  196. {
  197. System.Diagnostics.Debug.WriteLine(ex.ToString());
  198. }
  199. }
  200. public static void SetGridCheckBox(string MasterColumnName, string TableName, int ColumnWidth, Infragistics.Win.UltraWinGrid.UltraGridBase Grid)
  201. {
  202. try
  203. {
  204. Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].Hidden = false;
  205. Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].Header.Appearance.TextHAlign = Infragistics.Win.HAlign.Center;
  206. Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.CheckBox;
  207. }
  208. catch (System.Exception ex)
  209. {
  210. System.Diagnostics.Debug.WriteLine(ex.ToString());
  211. }
  212. }
  213. public static void SetCellActivation(string MasterColumnName, string TableName, Infragistics.Win.UltraWinGrid.UltraGridBase Grid, string Activation)
  214. {
  215. try
  216. {
  217. switch (Activation.Trim().ToUpper())
  218. {
  219. case "NOEDIT":
  220. Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  221. //dst.Tables[TableName].Columns[MasterColumnName].ReadOnly = true;
  222. break;
  223. case "ACTIVATEONLY":
  224. Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].CellActivation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
  225. //dst.Tables[TableName].Columns[MasterColumnName].ReadOnly = true;
  226. break;
  227. case "ALLOWEDIT":
  228. Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].CellActivation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
  229. //dst.Tables[TableName].Columns[MasterColumnName].ReadOnly = false;
  230. break;
  231. case "DISABLED":
  232. Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].CellActivation = Infragistics.Win.UltraWinGrid.Activation.Disabled;
  233. //dst.Tables[TableName].Columns[MasterColumnName].ReadOnly = true;
  234. break;
  235. default:
  236. Grid.DisplayLayout.Bands[TableName].Columns[MasterColumnName].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  237. break;
  238. }
  239. }
  240. catch (System.Exception ex)
  241. {
  242. System.Diagnostics.Debug.WriteLine(ex.ToString());
  243. }
  244. }
  245. }
  246. }