FrmComBaseWellPline.cs 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802
  1. using Core.Mes.Client.Comm.Control;
  2. using Core.Mes.Client.Comm.Format;
  3. using Core.Mes.Client.Comm.Server;
  4. using Core.Mes.Client.Comm.Tool;
  5. using Core.StlMes.Client.Qcm.model;
  6. using CoreFS.CA06;
  7. using Infragistics.Win.UltraWinEditors;
  8. using Infragistics.Win.UltraWinGrid;
  9. using System;
  10. using System.Collections;
  11. using System.Data;
  12. using System.Drawing;
  13. using System.Linq;
  14. using System.Windows.Forms;
  15. namespace Core.StlMes.Client.Qcm
  16. {
  17. public partial class FrmComBaseWellPline : FrmBase
  18. {
  19. int _jic = 1;
  20. string _PlineName = "";
  21. string errMessage = "";
  22. private UltraComboEditor _cmbProcess = new UltraComboEditor();
  23. public FrmComBaseWellPline()
  24. {
  25. InitializeComponent();
  26. ExceptionHelper.RegistException();
  27. }
  28. private void InitUi()
  29. {
  30. _cmbProcess.Visible = false;
  31. this.Controls.Add(_cmbProcess);
  32. QcmBaseQuery.NitializeProcess(_cmbProcess, false, ob);
  33. ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_CDOE"].EditorComponent = _cmbProcess;
  34. ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_CDOE"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  35. }
  36. public override void ToolBar_Click(object sender, string ToolbarKey)
  37. {
  38. switch (ToolbarKey)
  39. {
  40. case "Query":
  41. DoQuery(true);
  42. break;
  43. case "Save":
  44. DoSave();
  45. break;
  46. case "Delete":
  47. DeleteOrResume(true);
  48. break;
  49. case "Resume":
  50. DeleteOrResume(false);
  51. break;
  52. case "Invalid":
  53. DoQuery(false);
  54. break;
  55. case "Close":
  56. this.Close();
  57. break;
  58. }
  59. }
  60. /// <summary>
  61. /// 查询
  62. /// </summary>
  63. private void DoQuery(Boolean flag)
  64. {
  65. string validFlag = "1";
  66. if (!flag)
  67. validFlag = "0";
  68. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseWellPline.getComBaseWellPlineData", new Object[] { validFlag }, this.ob);
  69. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true);
  70. SetUltraGridStyle();
  71. UltraGridColumn[] col = new UltraGridColumn[] { ultraGrid1.DisplayLayout.Bands[0].Columns["MEMO"] };
  72. GridHelper.RefreshAndAutoSizeExceptColumns(ultraGrid1, col);
  73. UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "PLINE_NAME" }, new string[] { _PlineName });
  74. if (rows.Length > 0)
  75. {
  76. rows[0].Activate();
  77. }
  78. foreach (UltraGridRow row in ultraGrid1.Rows)
  79. {
  80. ControlGrid1Edit(row);
  81. }
  82. _PlineName = "";
  83. }
  84. private void DoSave()
  85. {
  86. ultraGrid1.UpdateData();
  87. ultraGrid2.UpdateData();
  88. UltraGridRow ugr = ultraGrid1.ActiveRow;
  89. ArrayList baseWell = new ArrayList();
  90. ArrayList monthWell = new ArrayList();
  91. int grid1Cnt = ultraGrid1.Rows.AsQueryable().Where("CHK = 'True'").Count();
  92. int grid2Cnt = ultraGrid2.Rows.AsQueryable().Where("CHK = 'True'").Count();
  93. if ((grid1Cnt + grid2Cnt) == 0)
  94. {
  95. MessageUtil.ShowWarning("请选择你要操作的记录!");
  96. return;
  97. }
  98. ComBasePlineEntity com = GetBaseWell(ugr);
  99. if (com == null) return;
  100. if (!CheckWellData(com))
  101. {
  102. MessageUtil.ShowWarning(errMessage);
  103. return;
  104. }
  105. _PlineName = com.PlineName;
  106. baseWell.Add(JSONFormat.Format(com));
  107. foreach (UltraGridRow row in ultraGrid2.Rows)
  108. {
  109. if (row.Cells["CHK"].Value.ToString() == "True")
  110. {
  111. ComBaseWellMonthPlineEntity comm = GetMonthWell(row);
  112. if (comm != null)
  113. {
  114. if (!CheckMonthData(comm, row))
  115. {
  116. MessageUtil.ShowWarning(errMessage);
  117. return;
  118. }
  119. monthWell.Add(JSONFormat.Format(comm));
  120. }
  121. else
  122. {
  123. return;
  124. }
  125. }
  126. }
  127. if (MessageBox.Show("是否保存选择记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  128. {
  129. return;
  130. }
  131. if (baseWell.Count > 0 || monthWell.Count > 0)
  132. {
  133. int count = ServerHelper.SetData("com.steering.pss.qcm.ComBaseWellPline.saveWell", new Object[] { baseWell, monthWell }, this.ob);
  134. if (count > 0)
  135. {
  136. MessageBox.Show("保存成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  137. DoQuery(true);
  138. }
  139. }
  140. }
  141. private ComBasePlineEntity GetBaseWell(UltraGridRow row)
  142. {
  143. if (row.Cells["PLINE_NAME"].Value.ToString() == "")
  144. {
  145. MessageUtil.ShowWarning("请输入产能井描述!");
  146. return null;
  147. }
  148. ComBasePlineEntity com = new ComBasePlineEntity();
  149. com.PlineCode = row.Cells["PLINE_CODE"].Value.ToString();
  150. com.PlineName = row.Cells["PLINE_NAME"].Value.ToString();
  151. com.CreateName = this.UserInfo.GetUserName();
  152. com.Validflag = row.Cells["VALIDFLAG"].Value.ToString();
  153. com.UpdateName = UserInfo.GetUserName();
  154. com.Memo = row.Cells["MEMO"].Value.ToString();
  155. com.ProcessCode = row.GetValue("PROCESS_CODE");
  156. com.ProcessDesc = row.GetText("PROCESS_CODE");
  157. com.SpecName = row.GetValue("SPEC_NAME");
  158. return com;
  159. }
  160. /// <summary>
  161. /// 检查标准数据
  162. /// </summary>
  163. /// <param name="com"></param>
  164. /// <returns></returns>
  165. private bool CheckWellData(ComBasePlineEntity com)
  166. {
  167. if (com.Validflag.Equals("无效"))
  168. {
  169. errMessage = "无效记录不能操作";
  170. return false;
  171. }
  172. //验证标准名称在ultraGrid1是否重复
  173. UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "PLINE_NAME", "CHK" }, new string[] { com.PlineName, "True" });
  174. if (rows.Length > 1)
  175. {
  176. errMessage = "产能井描述:" + com.PlineName + " 重复,请重新输入";
  177. return false;
  178. }
  179. if (com.Validflag.Equals(""))
  180. {
  181. //验证标准名称在数据表是否重复
  182. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseWellPline.checkComBaseWell", new Object[] { com.PlineName }, this.ob);
  183. if (dt != null && dt.Rows.Count > 0)
  184. {
  185. errMessage = "产能井描述:" + com.PlineName + " 重复,请重新输入";
  186. return false;
  187. }
  188. }
  189. else
  190. {
  191. //验证标准名称是否重复
  192. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseWellPline.checkBaseWellUpdate", new Object[] { com.PlineName, com.PlineCode }, this.ob);
  193. if (dt != null && dt.Rows.Count > 0)
  194. {
  195. errMessage = "产能井描述:" + com.PlineName + " 重复,请重新输入";
  196. return false;
  197. }
  198. }
  199. return true;
  200. }
  201. private bool CheckMonthData(ComBaseWellMonthPlineEntity com, UltraGridRow row)
  202. {
  203. ultraGrid1.UpdateData();
  204. UltraGridRow ugr = ultraGrid1.ActiveRow;
  205. if (com.Validflag.Equals("无效"))
  206. {
  207. errMessage = "无效记录不能操作";
  208. return false;
  209. }
  210. //验证标准名称在ultraGrid2是否重复
  211. UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGrid2, new string[] { "YEAR", "CHK" }, new string[] { com.Year, "True" });
  212. if (rows.Length > 1)
  213. {
  214. errMessage = "年份:" + com.Year + " 重复,请重新输入";
  215. return false;
  216. }
  217. if (com.Validflag.Equals(""))
  218. {
  219. //验证标准名称在数据表是否重复
  220. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseWellPline.checkYear", new Object[] { com.PlineCode, com.Year }, this.ob);
  221. if (dt != null && dt.Rows.Count > 0)
  222. {
  223. errMessage = "年份:" + com.Year + " 重复,请重新输入";
  224. return false;
  225. }
  226. }
  227. else
  228. {
  229. //验证标准名称是否重复
  230. if (com.Year != row.GetValue("YEAR_OLD"))
  231. {
  232. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseWellPline.checkYear", new Object[] { com.PlineCode, com.Year }, this.ob);
  233. if (dt != null && dt.Rows.Count > 0)
  234. {
  235. errMessage = "年份:" + com.Year + " 重复,请重新输入";
  236. return false;
  237. }
  238. }
  239. }
  240. //string weight = ugr.Cells["WEIGHT"].Value.ToString();
  241. //if (weight != "")
  242. //{
  243. // double wellNum = Convert.ToDouble(weight);
  244. // if (com.Month1 != "")
  245. // {
  246. // if (!StringUtil.IsNumber(com.Month1))
  247. // {
  248. // errMessage = "1月份的产能值请输入数字!";
  249. // return false;
  250. // }
  251. // if (Convert.ToDouble(com.Month1) > wellNum)
  252. // {
  253. // errMessage = "1月份的产能值不能超过最大产能值!";
  254. // return false;
  255. // }
  256. // }
  257. // if (com.Month2 != "")
  258. // {
  259. // if (!StringUtil.IsNumber(com.Month2))
  260. // {
  261. // errMessage = "2月份的产能值请输入数字!";
  262. // return false;
  263. // }
  264. // if (Convert.ToDouble(com.Month2) > wellNum)
  265. // {
  266. // errMessage = "2月份的产能值不能超过最大产能值!";
  267. // return false;
  268. // }
  269. // }
  270. // if (com.Month3 != "")
  271. // {
  272. // if (!StringUtil.IsNumber(com.Month3))
  273. // {
  274. // errMessage = "3月份的产能值请输入数字!";
  275. // return false;
  276. // }
  277. // if (Convert.ToDouble(com.Month3) > wellNum)
  278. // {
  279. // errMessage = "3月份的产能值不能超过最大产能值!";
  280. // return false;
  281. // }
  282. // }
  283. // if (com.Month4 != "")
  284. // {
  285. // if (!StringUtil.IsNumber(com.Month4))
  286. // {
  287. // errMessage = "4月份的产能值请输入数字!";
  288. // return false;
  289. // }
  290. // if (Convert.ToDouble(com.Month4) > wellNum)
  291. // {
  292. // errMessage = "4月份的产能值不能超过最大产能值!";
  293. // return false;
  294. // }
  295. // }
  296. // if (com.Month5 != "")
  297. // {
  298. // if (!StringUtil.IsNumber(com.Month5))
  299. // {
  300. // errMessage = "5月份的产能值请输入数字!";
  301. // return false;
  302. // }
  303. // if (Convert.ToDouble(com.Month5) > wellNum)
  304. // {
  305. // errMessage = "5月份的产能值不能超过最大产能值!";
  306. // return false;
  307. // }
  308. // }
  309. // if (com.Month6 != "")
  310. // {
  311. // if (!StringUtil.IsNumber(com.Month6))
  312. // {
  313. // errMessage = "6月份的产能值请输入数字!";
  314. // return false;
  315. // }
  316. // if (Convert.ToDouble(com.Month6) > wellNum)
  317. // {
  318. // errMessage = "6月份的产能值不能超过最大产能值!";
  319. // return false;
  320. // }
  321. // }
  322. // if (com.Month7 != "")
  323. // {
  324. // if (!StringUtil.IsNumber(com.Month7))
  325. // {
  326. // errMessage = "7月份的产能值请输入数字!";
  327. // return false;
  328. // }
  329. // if (Convert.ToDouble(com.Month7) > wellNum)
  330. // {
  331. // errMessage = "7月份的产能值不能超过最大产能值!";
  332. // return false;
  333. // }
  334. // }
  335. // if (com.Month8 != "")
  336. // {
  337. // if (!StringUtil.IsNumber(com.Month8))
  338. // {
  339. // errMessage = "8月份的产能值请输入数字!";
  340. // return false;
  341. // }
  342. // if (Convert.ToDouble(com.Month8) > wellNum)
  343. // {
  344. // errMessage = "8月份的产能值不能超过最大产能值!";
  345. // return false;
  346. // }
  347. // }
  348. // if (com.Month9 != "")
  349. // {
  350. // if (!StringUtil.IsNumber(com.Month9))
  351. // {
  352. // errMessage = "9月份的产能值请输入数字!";
  353. // return false;
  354. // }
  355. // if (Convert.ToDouble(com.Month9) > wellNum)
  356. // {
  357. // errMessage = "9月份的产能值不能超过最大产能值!";
  358. // return false;
  359. // }
  360. // }
  361. // if (com.Month10 != "")
  362. // {
  363. // if (!StringUtil.IsNumber(com.Month10))
  364. // {
  365. // errMessage = "10月份的产能值请输入数字!";
  366. // return false;
  367. // }
  368. // if (Convert.ToDouble(com.Month10) > wellNum)
  369. // {
  370. // errMessage = "10月份的产能值不能超过最大产能值!";
  371. // return false;
  372. // }
  373. // }
  374. // if (com.Month11 != "")
  375. // {
  376. // if (!StringUtil.IsNumber(com.Month11))
  377. // {
  378. // errMessage = "11月份的产能值请输入数字!";
  379. // return false;
  380. // }
  381. // if (Convert.ToDouble(com.Month11) > wellNum)
  382. // {
  383. // errMessage = "11月份的产能值不能超过最大产能值!";
  384. // return false;
  385. // }
  386. // }
  387. // if (com.Month12 != "")
  388. // {
  389. // if (!StringUtil.IsNumber(com.Month12))
  390. // {
  391. // errMessage = "12月份的产能值请输入数字!";
  392. // return false;
  393. // }
  394. // if (Convert.ToDouble(com.Month12) > wellNum)
  395. // {
  396. // errMessage = "12月份的产能值不能超过最大产能值!";
  397. // return false;
  398. // }
  399. // }
  400. //}
  401. //else
  402. //{
  403. // errMessage = "请维护产能井的最大产能!";
  404. // return false;
  405. //}
  406. return true;
  407. }
  408. private ComBaseWellMonthPlineEntity GetMonthWell(UltraGridRow row)
  409. {
  410. ComBaseWellMonthPlineEntity com = new ComBaseWellMonthPlineEntity();
  411. if (row.Cells["YEAR"].Value.ToString() == "")
  412. {
  413. MessageUtil.ShowWarning("请选择年份!");
  414. return null;
  415. }
  416. com.PlineCode = row.Cells["PLINE_CODE"].Value.ToString();
  417. com.PlineName = row.Cells["PLINE_NAME"].Value.ToString();
  418. com.Year = row.Cells["YEAR"].Value.ToString();
  419. com.Month1 = row.Cells["MONTH_1"].Value.ToString();
  420. com.Month2 = row.Cells["MONTH_2"].Value.ToString();
  421. com.Month3 = row.Cells["MONTH_3"].Value.ToString();
  422. com.Month4 = row.Cells["MONTH_4"].Value.ToString();
  423. com.Month5 = row.Cells["MONTH_5"].Value.ToString();
  424. com.Month6 = row.Cells["MONTH_6"].Value.ToString();
  425. com.Month7 = row.Cells["MONTH_7"].Value.ToString();
  426. com.Month8 = row.Cells["MONTH_8"].Value.ToString();
  427. com.Month9 = row.Cells["MONTH_9"].Value.ToString();
  428. com.Month10 = row.Cells["MONTH_10"].Value.ToString();
  429. com.Month11 = row.Cells["MONTH_11"].Value.ToString();
  430. com.Month12 = row.Cells["MONTH_12"].Value.ToString();
  431. com.CreateName = UserInfo.GetUserName();
  432. com.UpdateName = UserInfo.GetUserName();
  433. com.Validflag = row.GetValue("VALIDFLAG");
  434. com.Memo = row.GetValue("MEMO");
  435. com.YearOld = row.GetValue("YEAR_OLD");
  436. com.HaltHour1 = row.Cells["HALT_HOUR_1"].Value.ToString();
  437. com.HaltHour2 = row.Cells["HALT_HOUR_2"].Value.ToString();
  438. com.HaltHour3 = row.Cells["HALT_HOUR_3"].Value.ToString();
  439. com.HaltHour4 = row.Cells["HALT_HOUR_4"].Value.ToString();
  440. com.HaltHour5 = row.Cells["HALT_HOUR_5"].Value.ToString();
  441. com.HaltHour6 = row.Cells["HALT_HOUR_6"].Value.ToString();
  442. com.HaltHour7 = row.Cells["HALT_HOUR_7"].Value.ToString();
  443. com.HaltHour8 = row.Cells["HALT_HOUR_8"].Value.ToString();
  444. com.HaltHour9 = row.Cells["HALT_HOUR_9"].Value.ToString();
  445. com.HaltHour10 = row.Cells["HALT_HOUR_10"].Value.ToString();
  446. com.HaltHour11 = row.Cells["HALT_HOUR_11"].Value.ToString();
  447. com.HaltHour12 = row.Cells["HALT_HOUR_12"].Value.ToString();
  448. return com;
  449. }
  450. /// <summary>
  451. /// 设置ultraGrid1行颜色
  452. /// </summary>
  453. private void SetUltraGridStyle()
  454. {
  455. for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  456. {
  457. Infragistics.Win.UltraWinGrid.UltraGridRow row = ultraGrid1.Rows[i];
  458. if (!row.Cells["VALIDFLAG"].Value.ToString().Equals("有效"))
  459. {
  460. row.Appearance.ForeColor = Color.Red;
  461. }
  462. else
  463. {
  464. row.Appearance.ForeColor = Color.Black;
  465. }
  466. }
  467. }
  468. private void ultraGrid1_AfterRowInsert(object sender, RowEventArgs e)
  469. {
  470. ultraGrid1.UpdateData();
  471. UltraGridRow ugr = ultraGrid1.ActiveRow;
  472. DataRow[] dr = dataTable1.Select("", "PLINE_CODE DESC");
  473. string jic = "";
  474. string jicStr = "";
  475. if (dr.Length > 0)
  476. {
  477. jic = dr[0]["PLINE_CODE"].ToString();
  478. }
  479. if (!jic.Equals(""))
  480. {
  481. int number = int.Parse(jic.Substring(1, 3));
  482. jicStr = "J" + string.Format("{0:000}", number + 1);
  483. _jic = number + 1;
  484. }
  485. else
  486. {
  487. jicStr = "J" + string.Format("{0:000}", _jic);
  488. _jic = _jic + 1;
  489. }
  490. //赋值理化索引号
  491. ugr.Cells["PLINE_CODE"].Value = jicStr;
  492. ControlGrid1Edit(e.Row);
  493. }
  494. private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
  495. {
  496. ultraGrid1.UpdateData();
  497. UltraGridRow ugr = ultraGrid1.ActiveRow;
  498. for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  499. {
  500. if (!ultraGrid1.Rows[i].Equals(ugr))
  501. {
  502. ultraGrid1.Rows[i].Cells["CHK"].Value = false;
  503. }
  504. }
  505. string PlineCode = ugr.Cells["PLINE_CODE"].Value.ToString();
  506. QueryMonthWell(PlineCode);
  507. if (ugr == null || ugr.GetValue("VALIDFLAG") != "有效")
  508. {
  509. ultraGrid2.Enabled = false;
  510. dataTable2.Clear();
  511. return;
  512. }
  513. else
  514. ultraGrid2.Enabled = true;
  515. for (int i = 0; i < ultraGrid2.Rows.Count; i++)
  516. {
  517. Infragistics.Win.UltraWinGrid.UltraGridRow row = ultraGrid2.Rows[i];
  518. if (!row.Cells["VALIDFLAG"].Value.ToString().Equals("有效"))
  519. {
  520. row.Appearance.ForeColor = Color.Red;
  521. }
  522. else
  523. {
  524. row.Appearance.ForeColor = Color.Black;
  525. }
  526. }
  527. }
  528. private void QueryMonthWell(string PlineCode)
  529. {
  530. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseWellPline.getMonthWell", new Object[] { PlineCode }, this.ob);
  531. GridHelper.CopyDataToDatatable(ref dt, ref dataTable2, true);
  532. //foreach (UltraGridRow row in ultraGrid2.Rows)
  533. //{
  534. // for (int i = 0; i < row.Cells.Count; i++)
  535. // {
  536. // if (!row.Cells[i].Column.Key.Equals("CHK"))
  537. // row.Cells[i].Activation = Activation.ActivateOnly;
  538. // }
  539. //}
  540. }
  541. private void ultraGrid2_AfterRowInsert(object sender, RowEventArgs e)
  542. {
  543. UltraGridRow ugr1 = ultraGrid1.ActiveRow;
  544. UltraGridRow ugr2 = ultraGrid2.ActiveRow;
  545. ugr2.Cells["PLINE_CODE"].Value = ugr1.Cells["PLINE_CODE"].Value.ToString();
  546. ugr2.Cells["PLINE_NAME"].Value = ugr1.Cells["PLINE_NAME"].Value.ToString();
  547. //增加行如果没有勾选则不可编辑
  548. if (!Convert.ToBoolean(ugr2.Cells["CHK"].Value))
  549. {
  550. for (int i = 0; i < ugr2.Cells.Count; i++)
  551. {
  552. if (!ugr2.Cells[i].Column.Key.Equals("CHK"))
  553. ugr2.Cells[i].Activation = Activation.ActivateOnly;
  554. }
  555. }
  556. }
  557. private void ultraGrid2_CellChange(object sender, CellEventArgs e)
  558. {
  559. ultraGrid2.UpdateData();
  560. if (e.Cell.Column.Key.Equals("CHK"))
  561. {
  562. if (e.Cell.Value.ToString() == "True")
  563. {
  564. CellsCollection cells = e.Cell.Row.Cells;
  565. for (int i = 0; i < cells.Count; i++)
  566. {
  567. if (!cells[i].Column.Key.Equals("CHK"))
  568. {
  569. e.Cell.Row.Cells[i].Activation = Activation.AllowEdit;
  570. }
  571. }
  572. }
  573. else
  574. {
  575. CellsCollection cells = e.Cell.Row.Cells;
  576. for (int i = 0; i < cells.Count; i++)
  577. {
  578. if (!cells[i].Column.Key.Equals("CHK"))
  579. {
  580. e.Cell.Row.Cells[i].Activation = Activation.ActivateOnly;
  581. }
  582. }
  583. }
  584. }
  585. }
  586. private void InitYear()
  587. {
  588. UltraComboEditor uce = new UltraComboEditor();
  589. DataTable dt = new DataTable();
  590. dt.Columns.Add("YEAR", Type.GetType("System.Int32"));
  591. for (int i = 2000; i <= 2100; i++)
  592. dt.Rows.Add(new object[] { i });
  593. uce.DataSource = dt;
  594. uce.ValueMember = "YEAR";
  595. uce.DisplayMember = "YEAR";
  596. this.Controls.Add(uce);
  597. uce.Visible = false;
  598. ultraGrid2.DisplayLayout.Bands[0].Columns["YEAR"].EditorComponent = uce;
  599. ultraGrid2.DisplayLayout.Bands[0].Columns["YEAR"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  600. }
  601. private void FrmComBaseWellPline_Load(object sender, EventArgs e)
  602. {
  603. InitYear();
  604. ultraGrid2.Enabled = false;
  605. //InitUi();
  606. }
  607. private int IsSelected()
  608. {
  609. int i = 0;
  610. foreach (UltraGridRow row in ultraGrid1.Rows)
  611. {
  612. if (row.Cells["CHK"].Value.ToString() == "True")
  613. i++;
  614. }
  615. foreach (UltraGridRow row in ultraGrid2.Rows)
  616. {
  617. if (row.Cells["CHK"].Value.ToString() == "True")
  618. i++;
  619. }
  620. if (i > 0)
  621. return 0;
  622. else
  623. return -1;
  624. }
  625. /// <summary>
  626. /// 检验作废或者恢复
  627. /// </summary>
  628. /// <param name="valid">有效标识</param>
  629. /// <param name="flag"></param>
  630. /// <returns></returns>
  631. private bool CheckDeleteOrResume(string valid, bool flag)
  632. {
  633. if (valid.Equals(""))
  634. {
  635. errMessage = "记录未保存,不能" + (flag ? "作废" : "恢复");
  636. return false;
  637. }
  638. if (flag)
  639. {
  640. if (valid.Equals("无效"))
  641. {
  642. errMessage = "无效记录不能作废";
  643. return false;
  644. }
  645. }
  646. else
  647. {
  648. if (valid.Equals("有效"))
  649. {
  650. errMessage = "有效记录不能恢复";
  651. return false;
  652. }
  653. }
  654. return true;
  655. }
  656. private void DeleteOrResume(bool flag)
  657. {
  658. ultraGrid1.UpdateData();
  659. ultraGrid2.UpdateData();
  660. if (IsSelected() == -1)
  661. {
  662. MessageUtil.ShowWarning("请选择你要操作的记录!");
  663. return;
  664. }
  665. UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "CHK" }, new string[] { "True" });
  666. ArrayList wellData = new ArrayList();
  667. if (rows.Length > 0)
  668. {
  669. foreach (UltraGridRow ugr in rows)
  670. {
  671. ComBasePlineEntity com = GetBaseWell(ugr);
  672. com.DeleteName = UserInfo.GetUserName();
  673. wellData.Add(JSONFormat.Format(com));
  674. if (!CheckDeleteOrResume(com.Validflag, flag))
  675. {
  676. MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  677. return;
  678. }
  679. }
  680. }
  681. //产能井月量
  682. ArrayList monthData = new ArrayList();
  683. rows = GridHelper.GetRowsWithKey(ultraGrid2, new string[] { "CHK" }, new string[] { "True" });
  684. if (rows.Length > 0)
  685. {
  686. foreach (UltraGridRow ugr in rows)
  687. {
  688. ComBaseWellMonthPlineEntity com = GetMonthWell(ugr);
  689. monthData.Add(JSONFormat.Format(com));
  690. if (!CheckDeleteOrResume(com.Validflag, flag))
  691. {
  692. MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  693. return;
  694. }
  695. if (flag)
  696. {
  697. //预留判断是否被引用
  698. }
  699. _PlineName = com.PlineName;
  700. }
  701. }
  702. if (MessageBox.Show("是否" + (flag ? "作废" : "恢复") + "选择记录", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  703. {
  704. return;
  705. }
  706. if (monthData.Count > 0 || wellData.Count > 0)
  707. {
  708. int count = ServerHelper.SetData("com.steering.pss.qcm.ComBaseWellPline.deleteOrResume", new Object[] { wellData,monthData, flag }, this.ob);
  709. if (count > 0)
  710. {
  711. MessageBox.Show((flag ? "作废" : "恢复") + "成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question);
  712. DoQuery(true);
  713. }
  714. }
  715. }
  716. private void ultraGrid1_CellChange(object sender, CellEventArgs e)
  717. {
  718. ultraGrid1.UpdateData();
  719. if (e.Cell.Column.Key == "CHK")
  720. {
  721. ControlGrid1Edit(e.Cell.Row);
  722. }
  723. }
  724. private void ControlGrid1Edit(UltraGridRow row)
  725. {
  726. //if (row.GetValue("CHK") == "True")
  727. //{
  728. // row.Cells["PLINE_NAME"].Activation = Activation.AllowEdit;
  729. // row.Cells["PROCESS_CODE"].Activation = Activation.AllowEdit;
  730. // row.Cells["MEMO"].Activation = Activation.AllowEdit;
  731. //}
  732. //else
  733. //{
  734. // row.Cells["PLINE_NAME"].Activation = Activation.ActivateOnly;
  735. // row.Cells["PROCESS_CDOE"].Activation = Activation.ActivateOnly;
  736. // row.Cells["MEMO"].Activation = Activation.ActivateOnly;
  737. //}
  738. }
  739. }
  740. }