BaseMethod.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342
  1. using Core.Mes.Client.Comm.Server;
  2. using CoreFS.CA06;
  3. using Infragistics.Win.UltraWinEditors;
  4. using Infragistics.Win.UltraWinGrid;
  5. using Infragistics.Win.UltraWinMaskedEdit;
  6. using System;
  7. using System.Collections;
  8. using System.Collections.Generic;
  9. using System.Data;
  10. using System.Drawing;
  11. using System.Linq;
  12. using System.Windows.Forms;
  13. namespace Core.StlMes.Client.Judge.Commons
  14. {
  15. public class BaseMethod
  16. {
  17. /// <summary>
  18. /// UltraGrid可读
  19. /// </summary>
  20. /// <param name="ugr">UltraGrid</param>
  21. /// <param name="keys">可编辑列</param>
  22. public static void setOtherColumnReadOnly(UltraGrid ugr, string[] keys)
  23. {
  24. keys.ToArray();
  25. foreach (UltraGridColumn ugc in ugr.DisplayLayout.Bands[0].Columns)
  26. {
  27. if (!keys.Contains(ugc.Key))
  28. {
  29. ugc.CellActivation = Activation.ActivateOnly;
  30. }
  31. }
  32. }
  33. /// <summary>
  34. /// UltraGrid激活某行
  35. /// </summary>
  36. /// <param name="ug">UltraGrid</param>
  37. /// <param name="keys">列名</param>
  38. /// <param name="values">对应的值</param>
  39. public static void UltraGridLocation(UltraGrid ug, String[] keys, String[] values)
  40. {
  41. if (ug.Rows.Count == 0)
  42. {
  43. return;
  44. }
  45. if (keys.Length == 0 || values.Length == 0 || values.Length != keys.Length)
  46. {
  47. return;
  48. }
  49. foreach (UltraGridRow ugr in ug.Rows)
  50. {
  51. Boolean flag = true;
  52. for (int i = 0; i < keys.Length; i++)
  53. {
  54. if (!ugr.Cells[keys[i]].ToString().Equals(values[i]))
  55. {
  56. flag = false;
  57. }
  58. }
  59. if (flag == true)
  60. {
  61. ugr.Activate();
  62. return;
  63. }
  64. }
  65. }
  66. /// <summary>
  67. /// 设置列字段显示位置在右
  68. /// </summary>
  69. /// <param name="ug">UltraGrid</param>
  70. /// <param name="columnsKeys">要设置的列</param>
  71. public static void InitCellPosition(UltraGrid ug, string[] columnsKeys)
  72. {
  73. columnsKeys.ToArray();
  74. foreach (UltraGridColumn ugc in ug.DisplayLayout.Bands[0].Columns)
  75. {
  76. if (columnsKeys.Contains(ugc.Key.ToString()))
  77. {
  78. ugc.CellAppearance.TextHAlign = Infragistics.Win.HAlign.Right;
  79. }
  80. }
  81. }
  82. /// <summary>
  83. /// 列求和
  84. /// </summary>
  85. /// <param name="ug">UltraGrid</param>
  86. /// <param name="columnKeys">列数组</param>
  87. public static void GridColumnSum(UltraGrid ug, string[] columnKeys)
  88. {
  89. if (columnKeys.Length == 0)
  90. {
  91. return;
  92. }
  93. for (int i = 0; i < columnKeys.Length; i++)
  94. {
  95. ug.DisplayLayout.Bands[0].Summaries.Add(SummaryType.Sum, ug.DisplayLayout.Bands[0].Columns[columnKeys[i]], SummaryPosition.UseSummaryPositionColumn);
  96. }
  97. }
  98. /// <summary>
  99. /// 设置UltraGrid行颜色
  100. /// </summary>
  101. /// <param name="ug">UltraGrid</param>
  102. /// <param name="columnKeys">列</param>
  103. /// <param name="values">值</param>
  104. /// <param name="color">颜色</param>
  105. public static void SetUltraGridRowColor(UltraGrid ug, string[] columnKeys, string[] values, Color color)
  106. {
  107. if (ug.Rows.Count == 0 || columnKeys.Length == 0 || values.Length == 0 || color == null || values.Length != columnKeys.Length)
  108. {
  109. return;
  110. }
  111. foreach (UltraGridRow ugr in ug.Rows)
  112. {
  113. Boolean flag = true;
  114. for (int i = 0; i < columnKeys.Length; i++)
  115. {
  116. if (!ugr.Cells[columnKeys[i]].Value.ToString().Equals(values[i]))
  117. {
  118. flag = false;
  119. }
  120. }
  121. if (flag)
  122. {
  123. ugr.Appearance.BackColor = color;
  124. }
  125. }
  126. }
  127. /// <summary>
  128. /// 合并单元格
  129. /// </summary>
  130. /// <param name="ug"></param>
  131. /// <param name="columnKeys"></param>
  132. public static void MergedCell(UltraGrid ug, string[] columnKeys)
  133. {
  134. if (columnKeys.Length == 0)
  135. {
  136. return;
  137. }
  138. ug.DisplayLayout.Override.MergedCellStyle = MergedCellStyle.Never;
  139. for (int i = 0; i < columnKeys.Length; i++)
  140. {
  141. ug.DisplayLayout.Bands[0].Columns[columnKeys[i]].MergedCellStyle = MergedCellStyle.Always;
  142. }
  143. }
  144. /// <summary>
  145. /// 销售组织权限
  146. /// </summary>
  147. /// <param name="validDataPurviewIds">数据权限</param>
  148. /// <param name="ob"></param>
  149. /// <returns>字符串数组</returns>
  150. public static string[] InitPermissions(string[] validDataPurviewIds, OpeBase ob)
  151. {
  152. string[] arr = null;
  153. DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.base.WarehousePermissions.getSalgPermissions", new object[] { validDataPurviewIds }, ob);
  154. if (dt != null && dt.Rows.Count > 0)
  155. {
  156. arr = new string[dt.Rows.Count];
  157. for (int i = 0; i < dt.Rows.Count; i++)
  158. {
  159. arr[i] = dt.Rows[i][0].ToString();
  160. }
  161. return arr;
  162. }
  163. else
  164. {
  165. return new string[1] { "" };
  166. }
  167. }
  168. /// <summary>
  169. /// 把角色集合转换成数组
  170. /// </summary>
  171. /// <param name="list"></param>
  172. /// <returns></returns>
  173. public static string[] getRole(List<String> list)
  174. {
  175. string str = "";
  176. string[] roles = new string[list.Count];
  177. for (int i = 0; i < list.Count; i++)
  178. {
  179. str += list[i] + ',';
  180. }
  181. if (str.Length > 2)
  182. {
  183. str = str.Substring(0, str.LastIndexOf(','));
  184. roles = str.Split(',');
  185. }
  186. return roles;
  187. }
  188. /// <summary>
  189. /// 初始下拉框
  190. /// </summary>
  191. /// <param name="uce"></param>
  192. /// <param name="dt"></param>
  193. /// <param name="showName"></param>
  194. /// <param name="hideValue"></param>
  195. public static void InitComboEditor(UltraComboEditor uce, DataTable dt, String showName, String hideValue)
  196. {
  197. uce.DataSource = dt;
  198. uce.DisplayMember = showName;
  199. uce.ValueMember = hideValue;
  200. }
  201. /// <summary>
  202. /// 初始下拉框
  203. /// </summary>
  204. /// <param name="uce"></param>
  205. /// <param name="dt"></param>
  206. /// <param name="showName"></param>
  207. /// <param name="hideValue"></param>
  208. public static void InitComboEditor1(UltraComboEditor uce, DataTable dt, String showName, String hideValue)
  209. {
  210. uce.DataSource = dt;
  211. uce.DisplayMember = showName;
  212. uce.ValueMember = hideValue;
  213. uce.SelectedIndex = 1;
  214. }
  215. /// <summary>
  216. /// 设置列显示位数
  217. /// </summary>
  218. /// <param name="ug"></param>
  219. /// <param name="arr"></param>
  220. public static void setUltraGridColumnMaxInput(UltraGrid ug, string[] arr)
  221. {
  222. if (ug == null || arr == null || arr.Length == 0)
  223. {
  224. return;
  225. }
  226. arr.ToArray();
  227. foreach (UltraGridColumn ugc in ug.DisplayLayout.Bands[0].Columns)
  228. {
  229. if (arr.Contains(ugc.Key.ToString()))
  230. {
  231. ugc.MaskClipMode = MaskMode.IncludeLiterals;
  232. ugc.MaskInput = "{LOC}nn,nnn,nnn.nnn";
  233. }
  234. }
  235. }
  236. /// <summary>
  237. /// 键盘按下Ctrl+D,拷贝活动单元格的数据到所有已勾选的此列的单元格中
  238. /// </summary>
  239. /// <param name="ugrid">UltraGrid</param>
  240. /// <param name="e"></param>
  241. /// <param name="strs">可以进行列名称</param>
  242. public static void setGridCopyActColumn(UltraGrid ugrid, KeyEventArgs e, params string[] strs)
  243. {
  244. if (e.Control && e.KeyCode == Keys.D)
  245. {
  246. if (ugrid != null && ugrid.ActiveRow != null)
  247. {
  248. UltraGridRow ugr = ugrid.ActiveRow;
  249. foreach (string colName in strs)
  250. {
  251. if (ugrid.ActiveCell.Column.Key == null)
  252. {
  253. return;
  254. }
  255. if (ugrid.ActiveCell.Column.Key.Equals(colName))
  256. {
  257. if (ugr.Cells[colName].Activation != Activation.AllowEdit)
  258. {
  259. return;
  260. }
  261. ugrid.UpdateData();
  262. ArrayList list = new ArrayList();
  263. IQueryable<UltraGridRow> checkRows = ugrid.Rows.AsQueryable().Where("CHK = 'True' ");
  264. if (checkRows.Count() == 0)
  265. {
  266. return;
  267. }
  268. foreach (UltraGridRow uRow in checkRows)
  269. {
  270. if (uRow != ugr && uRow.Cells[colName].Activation == Activation.AllowEdit)
  271. {
  272. uRow.Cells[colName].Value = ugr.Cells[colName].Value;
  273. }
  274. }
  275. }
  276. }
  277. }
  278. }
  279. }
  280. /// <summary>
  281. /// 键盘按下Ctrl+D,拷贝活动单元格的数据到所有已勾选的此列的单元格中
  282. /// </summary>
  283. /// <param name="ugrid">UltraGrid</param>
  284. /// <param name="e"></param>
  285. /// <param name="strs">可以进行列名称</param>
  286. public static void setGridCopyActColumn1(UltraGrid ugrid, KeyEventArgs e, params string[] strs)
  287. {
  288. if (e.Control && e.KeyCode == Keys.D)
  289. {
  290. if (ugrid != null && ugrid.ActiveRow != null)
  291. {
  292. UltraGridRow ugr = ugrid.ActiveRow;
  293. foreach (string colName in strs)
  294. {
  295. if (ugrid.ActiveCell.Column.Key.Equals(colName))
  296. {
  297. if (ugr.Cells[colName].Activation != Activation.AllowEdit)
  298. {
  299. return;
  300. }
  301. ugrid.UpdateData();
  302. ArrayList list = new ArrayList();
  303. IQueryable<UltraGridRow> checkRows = ugrid.Rows.AsQueryable().Where("CHOOSE = 'True' ");
  304. if (checkRows.Count() == 0)
  305. {
  306. return;
  307. }
  308. foreach (UltraGridRow uRow in checkRows)
  309. {
  310. if (uRow != ugr && uRow.Cells[colName].Activation == Activation.AllowEdit)
  311. {
  312. uRow.Cells[colName].Value = ugr.Cells[colName].Value;
  313. }
  314. }
  315. }
  316. }
  317. }
  318. }
  319. }
  320. }
  321. }