FrmMatCheckConsignAdd.cs 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513
  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 CoreFS.CA06;
  10. using Infragistics.Win.UltraWinGrid;
  11. using Core.Mes.Client.Comm.Tool;
  12. using System.Collections;
  13. using Core.Mes.Client.Comm.Control;
  14. namespace Core.StlMes.Client.Lims.Data.Mat
  15. {
  16. public partial class FrmMatCheckConsignAdd : FrmBase
  17. {
  18. private DataTable m_dtSelectItems;
  19. public FrmMatCheckConsignAdd()
  20. {
  21. InitializeComponent();
  22. }
  23. protected override void OnLoad(EventArgs e)
  24. {
  25. base.OnLoad(e);
  26. publicUltraGridBase1.Ug.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;//不默认加载筛选条件框
  27. publicUltraGridDetail1.Ug.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  28. }
  29. private void FrmMatCheckConsignAdd_Load(object sender, EventArgs e)
  30. {
  31. InitColumns();
  32. ultITEM_NAME.QueryMatItemsName(this.ob);
  33. ultPRODUCT_STD.QueryStd_Code(this.ob);
  34. }
  35. private void InitColumns()
  36. {
  37. publicUltraGridBase1.PublicUltraGridBaseActive += new EventHandler(publicUltraGridBase1_PublicUltraGridBaseActive);//调用委托事件
  38. publicUltraGridBase1.InitColumnsBase(new string[] { "CHECK_NO" }, true, null);
  39. string[] arrColumns = new string[] { "SAMPLE_NO" };//"FLAG","CHK",
  40. string[] arrCaption = new string[] { "试样号" };//"试样状态","选择",
  41. publicUltraGridDetail1.InitColumns(arrColumns, arrCaption);
  42. publicUltraGridDetail1.Ug.DisplayLayout.Bands[0].Override.AllowAddNew = AllowAddNew.TemplateOnBottom;
  43. }
  44. /// <summary>
  45. /// 重写基类方法
  46. /// </summary>
  47. /// <param name="sender"></param>
  48. /// <param name="ToolbarKey"></param>
  49. public override void ToolBar_Click(object sender, string ToolbarKey)
  50. {
  51. //新增、修改修约值、审核、删除、退出
  52. switch (ToolbarKey)
  53. {
  54. case "Query":
  55. QueryCheckConsignBase();
  56. break;
  57. case "Add":
  58. AddCheckConsign();
  59. break;
  60. case "Update":
  61. UpdateCheckConsign();
  62. break;
  63. case "Delete":
  64. DeleteCheckConsign();
  65. break;
  66. case "Clear":
  67. if (MessageUtil.ShowYesNoAndQuestion("是否确认清空?") == DialogResult.Yes)
  68. {
  69. ClearCheckConsign();
  70. MessageUtil.ShowTips("清空成功!");
  71. }
  72. break;
  73. case "Close":
  74. if (MessageUtil.ShowYesNoAndQuestion("是否确认关闭页面?") == DialogResult.Yes)
  75. {
  76. this.Close();
  77. }
  78. break;
  79. }
  80. }
  81. //查询检验委托基本信息
  82. private void QueryCheckConsignBase()
  83. {
  84. try
  85. {
  86. publicUltraGridBase1.QueryCheckConsignBase("mat.PublicMatBase", matQueryBase1.GetQueryInfo("1"), this.ob);
  87. if (publicUltraGridBase1.Ug.Rows.Count == 0)
  88. {
  89. ClearCheckConsign();
  90. }
  91. }
  92. catch (Exception e)
  93. {
  94. MessageUtil.ShowWarning(e.Message);
  95. return;
  96. }
  97. }
  98. //清空检验委托
  99. private void ClearCheckConsign()
  100. {
  101. ClearCheckConsignBase();
  102. publicUltraGridDetail1.DataTable.Rows.Clear();
  103. PublicMat.ReMoveColumns(publicUltraGridDetail1.DataTable, 1);//清除列
  104. m_dtSelectItems = null;
  105. //清理内存表
  106. }
  107. private void ClearCheckConsignBase()
  108. {
  109. txtCHECK_NO.Text = "";
  110. ultITEM_NAME.UltSample_Name = "";
  111. txtSAMPLE_NO.Text = "";
  112. ultPRODUCT_STD.UltStd__Code = "";
  113. ultraGRADE.Text = "";//钢号
  114. txtWEIGHT.Text = "";
  115. ultraCHECK_COUNT_DESC.Text = "初检";
  116. txtCONSIGN_DEPT.Text = "";
  117. txtCONSIGN_NAME.Text = "";
  118. txtCONSIGN_TIME.Text = "";//委托单位
  119. txtREMARK.Text = "";//备注
  120. }
  121. void publicUltraGridBase1_PublicUltraGridBaseActive(object sender, EventArgs e)
  122. {
  123. PublicMat.ShowBaseInfo(publicUltraGridBase1.Ur, panel4);
  124. ultITEM_NAME.UltSample_Name = publicUltraGridBase1.Ur.Cells["ITEM_NAME"].Text.Trim();
  125. ultPRODUCT_STD.UltStd__Code = publicUltraGridBase1.Ur.Cells["PRODUCT_STD"].Text.Trim();
  126. if (publicUltraGridDetail1.DataTable.Rows.Count > 0)
  127. {
  128. txtSAMPLE_NO.Text = (publicUltraGridDetail1.DataTable.Rows.Count - 1).ToString();
  129. }
  130. QueryCheckConsignDetail();
  131. QueryCheckConsignDetail_Distinct();
  132. }
  133. //查询检验委托明细信息
  134. private void QueryCheckConsignDetail_Distinct()
  135. {
  136. try
  137. {
  138. ArrayList arrayList = new ArrayList();
  139. arrayList.Add("");
  140. arrayList.Add("");
  141. arrayList.Add("");
  142. arrayList.Add(publicUltraGridBase1.Ur.Cells["CHECK_NO"].Text.Trim());
  143. DataTable dt = PublicServer.GetData("com.steering.lims.data.mat.PublicMatBase.QueryCheckConsignDetail_Distinct",
  144. new Object[] { arrayList }, ob);
  145. if (dt == null || dt.Rows.Count == 0)
  146. {
  147. return;
  148. }
  149. m_dtSelectItems = dt.Copy();
  150. }
  151. catch (Exception ex)
  152. {
  153. MessageUtil.ShowWarning(ex.Message);
  154. return;
  155. }
  156. }
  157. //查询检验委托明细信息
  158. private void QueryCheckConsignDetail()
  159. {
  160. try
  161. {
  162. ArrayList arrayList = new ArrayList();
  163. arrayList.Add("");
  164. arrayList.Add("");
  165. arrayList.Add("");
  166. arrayList.Add(publicUltraGridBase1.Ur.Cells["CHECK_NO"].Text.Trim());
  167. publicUltraGridDetail1.QueryCheckConsignDetail(arrayList, this.ob, 1);
  168. publicUltraGridDetail1.setOtherColumnReadOnly(new string[] { "SAMPLE_NO" });//可编辑列
  169. }
  170. catch (Exception ex)
  171. {
  172. MessageUtil.ShowWarning(ex.Message);
  173. return;
  174. }
  175. }
  176. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  177. {
  178. switch (e.Tool.Key.ToString())
  179. {
  180. case "AddMat":
  181. AddMatItems();
  182. break;
  183. }
  184. }
  185. private void AddMatItems()
  186. {
  187. publicUltraGridDetail1.DataTable.Rows.Clear();
  188. WinMatItemsSelect pc = new WinMatItemsSelect();
  189. pc.Ob = this.ob;
  190. pc.DtSelectItems = m_dtSelectItems;
  191. pc.ShowDialog();
  192. if (pc.DialogResult != DialogResult.OK)
  193. {
  194. return;
  195. }
  196. m_dtSelectItems = pc.DtSelectItems;
  197. publicUltraGridDetail1.ShowColumns(1, m_dtSelectItems, publicUltraGridDetail1.DataTable);
  198. DataRow newDrUnit = publicUltraGridDetail1.DataTable.NewRow();//增加单位行
  199. foreach (DataRow dr in m_dtSelectItems.Rows)
  200. {
  201. newDrUnit[dr["MAT_CODE"].ToString()] = dr["MAT_UNIT"].ToString();
  202. }
  203. publicUltraGridDetail1.DataTable.Rows.InsertAt(newDrUnit, 0);
  204. publicUltraGridDetail1.setOtherColumnReadOnly(new string[] { "SAMPLE_NO" });//可编辑列
  205. }
  206. //增加检验委托
  207. private void AddCheckConsign()
  208. {
  209. try
  210. {
  211. if (txtCHECK_NO.Text.Trim() == "")
  212. {
  213. MessageUtil.ShowWarning("检验编号不能为空!");
  214. return;
  215. }
  216. string strAddChem = isRule();
  217. if (strAddChem != "")
  218. {
  219. MessageUtil.ShowWarning(strAddChem);
  220. return;
  221. }
  222. if (MessageUtil.ShowYesNoAndQuestion("是否确认新增?") == DialogResult.Yes)
  223. {
  224. string strCHECK_NO = txtCHECK_NO.Text.Trim();//检验委托编号
  225. ArrayList alAll = new ArrayList();//整体list,插入几个表增加几个List
  226. ArrayList alBase = new ArrayList();//基础表list
  227. alBase.Add(GetCheckConsignBase(""));//增加基础表参数
  228. ArrayList alDetail = new ArrayList();//检验信息详细表list
  229. ArrayList alDetailParams = new ArrayList();//检验信息详细表参数list
  230. publicUltraGridDetail1.Ug.UpdateData();
  231. if (publicUltraGridDetail1.DataTable.Rows.Count > 1 && m_dtSelectItems != null && m_dtSelectItems.Rows.Count > 0)
  232. {
  233. foreach (DataRow dr in publicUltraGridDetail1.DataTable.Rows)
  234. {
  235. if (dr["SAMPLE_NO"].ToString().Trim() != "")
  236. {
  237. foreach (DataRow drSel in m_dtSelectItems.Rows)
  238. {
  239. alDetailParams = new ArrayList();
  240. alDetailParams.Add(strCHECK_NO);
  241. alDetailParams.Add("");//批次号
  242. alDetailParams.Add(dr["SAMPLE_NO"].ToString().Trim());
  243. alDetailParams.Add(drSel["MAT_CODE"].ToString().Trim());
  244. alDetailParams.Add(drSel["MAT_NAME"].ToString().Trim());
  245. alDetailParams.Add(drSel["MAT_TYPE"].ToString().Trim());
  246. alDetailParams.Add(drSel["MAT_UNIT"].ToString().Trim());
  247. alDetailParams.Add(drSel["VALUE_TYPE"].ToString().Trim());
  248. alDetailParams.Add(drSel["DEPT_ID"].ToString().Trim());
  249. alDetail.Add(alDetailParams);
  250. }
  251. }
  252. }
  253. }
  254. alAll.Add(alBase);
  255. alAll.Add(alDetail);
  256. PublicServer.SetData("com.steering.lims.data.mat.FrmMatCheckConsign.AddCheckConsign",
  257. new Object[] { strCHECK_NO, alAll }, this.ob);
  258. QueryCheckConsignBase();
  259. PublicMat.ActiveOperateRow(publicUltraGridBase1.Ug, "CHECK_NO", strCHECK_NO);
  260. MessageUtil.ShowTips("新增成功!");
  261. }
  262. }
  263. catch (Exception e)
  264. {
  265. MessageUtil.ShowWarning(e.Message);
  266. return;
  267. }
  268. }
  269. //判断录入是否符合规则
  270. private string isRule()
  271. {
  272. publicUltraGridDetail1.Ug.UpdateData();
  273. if (publicUltraGridDetail1.DataTable.Rows.Count < 2)
  274. {
  275. return "请输入试样号!";
  276. }
  277. if (publicUltraGridDetail1.Ug.DisplayLayout.Bands[0].Columns.Exists("SAMPLE_NO"))
  278. {
  279. string strTemp = "";
  280. foreach (UltraGridRow ur in publicUltraGridDetail1.Ug.Rows)
  281. {
  282. if (publicUltraGridDetail1.Ug.Rows.IndexOf(ur) != 0)
  283. {
  284. if (ur.Cells["SAMPLE_NO"].Text.Trim() == "")
  285. {
  286. return "试样号不能为空!";
  287. }
  288. else
  289. {
  290. if (strTemp == ur.Cells["SAMPLE_NO"].Text.Trim())
  291. {
  292. return "存在相同的试样号请重新输入!";
  293. }
  294. else
  295. {
  296. strTemp = ur.Cells["SAMPLE_NO"].Text.Trim();
  297. }
  298. }
  299. }
  300. }
  301. }
  302. return "";
  303. }
  304. //获取检验委托基本信息
  305. private ArrayList GetCheckConsignBase(string strSAMPLE_REMARK)
  306. {
  307. ArrayList al = new ArrayList();
  308. al.Add(txtCHECK_NO.Text.Trim());
  309. al.Add(ultITEM_NAME.UltSample_Name);
  310. al.Add(ultPRODUCT_STD.UltStd__Code);
  311. al.Add(ultraGRADE.Text.Trim());
  312. al.Add(txtWEIGHT.Text.Trim());//钢号
  313. al.Add(ultraCHECK_COUNT_DESC.Value == null ? "0" : ultraCHECK_COUNT_DESC.Value.ToString());
  314. al.Add(txtCONSIGN_DEPT.Text.Trim() == "" ? UserInfo.GetDepartment() : txtCONSIGN_DEPT.Text.Trim());
  315. al.Add(UserInfo.GetUserName());//委托人
  316. al.Add("1");//数据类型1人工录入 0接口委托
  317. //al.Add(strSAMPLE_REMARK);
  318. al.Add(strSAMPLE_REMARK);
  319. al.Add(txtREMARK.Text.Trim());
  320. return al;
  321. }
  322. //修改检验委托
  323. private void UpdateCheckConsign()
  324. {
  325. try
  326. {
  327. if (publicUltraGridBase1.Ur == null)
  328. {
  329. MessageUtil.ShowWarning("请选择需要修改的数据!");
  330. return;
  331. }
  332. //if (txtCHECK_NO.Text.Trim() == "")
  333. //{
  334. // MessageUtil.ShowWarning("检验编号不能为空!");
  335. // return;
  336. //}
  337. string strAddChem = isRule();
  338. if (strAddChem != "")
  339. {
  340. MessageUtil.ShowWarning(strAddChem);
  341. return;
  342. }
  343. //if (MessageUtil.ShowYesNoAndQuestion("是否确认修改?") == DialogResult.Yes)
  344. //{
  345. WinCancelReason pc = new WinCancelReason();
  346. pc.ShowDialog();
  347. if (pc.DialogResult != DialogResult.OK)
  348. {
  349. return;
  350. }
  351. string strSample_Remark = pc.StrRemark;
  352. strSample_Remark = this.Text + "修改由于" + strSample_Remark + "(" + UserInfo.GetUserName() + " " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ")";
  353. string strCHECK_NO = publicUltraGridBase1.Ur.Cells["CHECK_NO"].Text.Trim();
  354. ArrayList alAll = new ArrayList();//整体list,插入几个表增加几个List
  355. ArrayList alBase = new ArrayList();//基础表list
  356. alBase.Add(GetCheckConsignBase(strSample_Remark));//增加基础表参数
  357. ArrayList alDetail = new ArrayList();//检验信息详细表list
  358. ArrayList alDetailParams = new ArrayList();//检验信息详细表参数list
  359. publicUltraGridDetail1.Ug.UpdateData();
  360. if (publicUltraGridDetail1.DataTable.Rows.Count > 1 && m_dtSelectItems != null && m_dtSelectItems.Rows.Count > 0)
  361. {
  362. foreach (DataRow dr in publicUltraGridDetail1.DataTable.Rows)
  363. {
  364. if (dr["SAMPLE_NO"].ToString().Trim() != "")
  365. {
  366. foreach (DataRow drSel in m_dtSelectItems.Rows)
  367. {
  368. alDetailParams = new ArrayList();
  369. alDetailParams.Add(strCHECK_NO);
  370. alDetailParams.Add("");//批次号
  371. alDetailParams.Add(dr["SAMPLE_NO"].ToString().Trim());
  372. alDetailParams.Add(drSel["MAT_CODE"].ToString().Trim());
  373. alDetailParams.Add(drSel["MAT_NAME"].ToString().Trim());
  374. alDetailParams.Add(drSel["MAT_TYPE"].ToString().Trim());
  375. alDetailParams.Add(drSel["MAT_UNIT"].ToString().Trim());
  376. alDetailParams.Add(drSel["VALUE_TYPE"].ToString().Trim());
  377. alDetailParams.Add(drSel["DEPT_ID"].ToString().Trim());
  378. alDetail.Add(alDetailParams);
  379. }
  380. }
  381. }
  382. }
  383. alAll.Add(alBase);
  384. alAll.Add(alDetail);
  385. PublicServer.SetData("com.steering.lims.data.mat.FrmMatCheckConsign.UpdateCheckConsign",
  386. new Object[] { strCHECK_NO, alAll }, this.ob);
  387. QueryCheckConsignBase();
  388. PublicMat.ActiveOperateRow(publicUltraGridBase1.Ug, "CHECK_NO", strCHECK_NO);
  389. MessageUtil.ShowTips("修改成功!");
  390. //}
  391. }
  392. catch (Exception e)
  393. {
  394. MessageUtil.ShowWarning(e.Message);
  395. return;
  396. }
  397. }
  398. //删除检验委托
  399. private void DeleteCheckConsign()
  400. {
  401. try
  402. {
  403. if (publicUltraGridBase1.Ur == null)
  404. {
  405. MessageUtil.ShowWarning("请选择需要删除的数据!");
  406. return;
  407. }
  408. if (MessageUtil.ShowYesNoAndQuestion("是否确认删除?") == DialogResult.Yes)
  409. {
  410. string strCHECK_NO = publicUltraGridBase1.Ur.Cells["CHECK_NO"].Text.Trim();
  411. ArrayList al = new ArrayList();
  412. al.Add(strCHECK_NO);
  413. PublicServer.SetData("com.steering.lims.data.mat.FrmMatCheckConsign.DeleteCheckConsign",
  414. new Object[] { strCHECK_NO, al }, this.ob);
  415. QueryCheckConsignBase();
  416. MessageUtil.ShowTips("删除成功!");
  417. }
  418. }
  419. catch (Exception e)
  420. {
  421. MessageUtil.ShowWarning(e.Message);
  422. return;
  423. }
  424. }
  425. private void btnAuto_Click(object sender, EventArgs e)
  426. {
  427. try
  428. {
  429. DataTable dt = PublicServer.GetData("com.steering.lims.data.mat.FrmMatCheckConsign.QueryMaxCheckNo",
  430. new Object[] { }, ob);
  431. if (dt == null || dt.Rows.Count == 0)
  432. {
  433. return;
  434. }
  435. txtCHECK_NO.Text = dt.Rows[0]["CHECK_NO"].ToString();
  436. }
  437. catch (Exception ex)
  438. {
  439. MessageUtil.ShowWarning(ex.Message);
  440. return;
  441. }
  442. }
  443. }
  444. }