CraftOrdDesignStdDicCtrl.cs 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Drawing;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using Core.StlMes.Client.SaleOrder.BLL;
  10. using CoreFS.CA06;
  11. using Core.Mes.Client.Comm.Tool;
  12. using Infragistics.Win.UltraWinEditors;
  13. using Infragistics.Win.UltraWinGrid;
  14. using Core.StlMes.Client.Qcm;
  15. using Core.Mes.Client.Comm.Server;
  16. using CoreFS.SA06;
  17. using Infragistics.Win;
  18. using Core.Mes.Client.Comm.Control;
  19. namespace Core.StlMes.Client.SaleOrder.Control
  20. {
  21. public partial class CraftOrdDesignStdDicCtrl : UserControl
  22. {
  23. private CraftOrdDesignStdDicBLL _designStdDicBLL;
  24. private CraftOrdDesignMscPlBLL _designMscPlBLL;
  25. private CraftOrdDesignMscPlPrcBLL _designMscPlPrcBLL;
  26. private UltraComboEditor[] ultras = new UltraComboEditor[11];
  27. private OpeBase _ob;
  28. public CraftOrdDesignStdDicCtrl(System.Windows.Forms.Control container, OpeBase ob)
  29. {
  30. InitializeComponent();
  31. _ob = ob;
  32. _designStdDicBLL = new CraftOrdDesignStdDicBLL(ob);
  33. _designMscPlBLL = new CraftOrdDesignMscPlBLL(ob);
  34. _designMscPlPrcBLL = new CraftOrdDesignMscPlPrcBLL(ob);
  35. container.Controls.Add(this);
  36. this.Dock = DockStyle.Fill;
  37. LoadBaseData();
  38. }
  39. private void LoadBaseData()
  40. {
  41. for (int i = 0; i < ultras.Length; i++)
  42. {
  43. ultras[i] = new UltraComboEditor();
  44. this.Controls.Add(ultras[i]);
  45. ultras[i].Visible = false;
  46. ultras[i].DropDownListWidth = -1;
  47. }
  48. //从表
  49. UltraGridBand ugbC = entityGrid1.DisplayLayout.Bands[0];
  50. //探伤位置
  51. QcmBaseCommon.InitDrop(ultras[2], "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4020", "BASENAME", "BASECODE", false, _ob);
  52. ugbC.Columns["PositionCode"].EditorComponent = ultras[2];
  53. ugbC.Columns["PositionCode"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  54. //探伤标准
  55. QcmBaseCommon.InitDrop(ultras[3], "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4021", "BASENAME", "BASECODE", false, _ob);
  56. ugbC.Columns["StdDesc"].EditorComponent = ultras[3];
  57. ugbC.Columns["StdDesc"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  58. //探伤级别
  59. QcmBaseCommon.InitDrop(ultras[4], "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4022", "BASENAME", "BASECODE", false, _ob);
  60. ugbC.Columns["LvCode"].EditorComponent = ultras[4];
  61. ugbC.Columns["LvCode"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  62. //检验项
  63. QcmBaseCommon.InitDrop(ultras[6], "com.steering.pss.qcm.ComBaseQuery.getComBasePhyD", "PHY_NAME", "PHY_CODE", true, _ob);
  64. ugbC.Columns["PhyCode"].EditorComponent = ultras[6];
  65. ugbC.Columns["PhyCode"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  66. //刻槽位置
  67. QcmBaseCommon.InitDrop(ultras[7], "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4023", "BASENAME", "BASENAME", false, _ob);
  68. ugbC.Columns["GroovePos"].EditorComponent = ultras[7];
  69. ugbC.Columns["GroovePos"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  70. //刻槽方向
  71. QcmBaseCommon.InitDrop(ultras[8], "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4024", "BASENAME", "BASENAME", false, _ob);
  72. ugbC.Columns["GrooveDir"].EditorComponent = ultras[8];
  73. ugbC.Columns["GrooveDir"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  74. //检验频次
  75. QcmBaseCommon.InitDrop(ultras[9], "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4011", "BASENAME", "BASECODE", false, _ob);
  76. ugbC.Columns["Rate"].EditorComponent = ultras[9];
  77. ugbC.Columns["Rate"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  78. }
  79. /// <summary>
  80. /// 查询质量设计探伤
  81. /// </summary>
  82. /// <param name="designStdDicEntity"></param>
  83. public void Query(CraftOrdDesignStdDicEntity designStdDicEntity)
  84. {
  85. this.CraftOrdDesignStdDicEntityBindingSource.DataSource = _designStdDicBLL.Query(designStdDicEntity);
  86. }
  87. private string designKey = "";
  88. private string[] _parms;
  89. /// <summary>
  90. /// 查询质量设计探伤
  91. /// </summary>
  92. /// <param name="designStdDicEntity"></param>
  93. public void QueryByDesignKeyDic(string[] parms)
  94. {
  95. designKey = parms[0];
  96. _parms = parms;
  97. var data = _designStdDicBLL.QueryByDesignKeyDic(parms);
  98. var list = data.Select(p => p.Dic).Distinct().ToList();
  99. if (list.Count > 1)
  100. {
  101. ultras[10].DataSource = data.Select(p => p.Dic).Distinct().ToList();
  102. QcmBaseQuery.BindColumn(ultras[10], "Dic", entityGrid1.DisplayLayout.Bands[0]);
  103. }
  104. this.CraftOrdDesignStdDicEntityBindingSource.DataSource = data;
  105. //UltraComboEditor cmb = new UltraComboEditor();
  106. foreach (var row in entityGrid1.Rows)
  107. {
  108. GridEdite(row);
  109. if (row.GetValue("CraftSource") == "0")
  110. {
  111. row.Cells["Chk"].Value = null;
  112. row.Cells["Chk"].Activation = Activation.ActivateOnly;
  113. row.Update();
  114. }
  115. //if (cmb.ValueList.FindString(row.GetValue("Dic")) == -1)
  116. //{
  117. // cmb.ValueList.ValueListItems.Add(row.GetValue("Dic"));
  118. //}
  119. }
  120. //cmb.DisplayStyle = EmbeddableElementDisplayStyle.WindowsVista;
  121. //entityGrid1.DisplayLayout.Bands[0].Columns["Dic"].EditorComponent = cmb;
  122. //entityGrid1.DisplayLayout.Bands[0].Columns["Dic"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  123. }
  124. public void Clear()
  125. {
  126. this.CraftOrdDesignStdDicEntityBindingSource.Clear();
  127. }
  128. public void Save()
  129. {
  130. List<CraftOrdDesignStdDicEntity> parms = new List<CraftOrdDesignStdDicEntity>();
  131. var rows = entityGrid1.Rows.Where(a => a.GetValue("Chk") == "True");
  132. foreach (var row in rows)
  133. {
  134. var parm = EntityHelper.CopyEntity<CraftOrdDesignStdDicEntity>(row.ListObject);
  135. parm.DescRate = row.GetText("Rate");
  136. parm.LvDesc = row.GetText("LvCode");
  137. parm.PhyName = row.GetText("PhyCode");
  138. parm.PositionDesc = row.GetText("PositionCode");
  139. if (parm.MscPline == "")
  140. {
  141. MessageUtil.ShowWarning("请选择制程!");
  142. row.SetCellActive("MscPline");
  143. return;
  144. }
  145. //if (parm.ProcessDescC == "")
  146. //{
  147. // MessageUtil.ShowWarning("请选择二级工序!");
  148. // row.SetCellActive("ProcessDescC");
  149. // return;
  150. //}
  151. if (parm.Dic == "")
  152. {
  153. MessageUtil.ShowWarning("请选择探伤索引码!");
  154. row.SetCellActive("Dic");
  155. return;
  156. }
  157. if (parm.PhyName.Equals(""))
  158. {
  159. MessageUtil.ShowWarning("请选择材质检验项!");
  160. return;
  161. }
  162. if (parm.PositionDesc.Equals(""))
  163. {
  164. MessageUtil.ShowWarning("请选择探伤位置!");
  165. return;
  166. }
  167. if (parm.StdDesc.Equals(""))
  168. {
  169. MessageUtil.ShowWarning("请选择探伤参考标准!");
  170. return;
  171. }
  172. if (parm.LvDesc.Equals(""))
  173. {
  174. MessageUtil.ShowWarning("请选择探伤级别!");
  175. return;
  176. }
  177. if (parm.Coverage.Equals("") || !StringUtil.IsNumber(parm.Coverage) || Convert.ToDouble(parm.Coverage) > 100 || Convert.ToDouble(parm.Coverage) < 0)
  178. {
  179. MessageUtil.ShowWarning("请输入探伤覆盖率:0~100!");
  180. return;
  181. }
  182. if (!parm.Coverage.Equals("") && parm.Coverage.StartsWith("."))
  183. parm.Coverage = "0" + parm.Coverage;
  184. if (parm.GroovePos.Equals(""))
  185. {
  186. MessageUtil.ShowWarning("请选择刻槽位置!");
  187. return;
  188. }
  189. if (parm.DescRate == "")
  190. {
  191. MessageUtil.ShowWarning("请选择检验频次!");
  192. return;
  193. }
  194. else
  195. {
  196. if (parm.DescRate == "按比例")
  197. {
  198. if (parm.DescVal == "")
  199. {
  200. MessageUtil.ShowWarning("请输入频率值!");
  201. return;
  202. }
  203. if (!StringUtil.IsNumber(parm.DescVal))
  204. {
  205. MessageUtil.ShowWarning("频率值:请输入数字!");
  206. return;
  207. }
  208. if (Convert.ToDouble(parm.DescVal) <= 0 || Convert.ToDouble(parm.DescVal) > 100)
  209. {
  210. MessageUtil.ShowWarning("频率值:请输入大于0小于等于100的数字!");
  211. return;
  212. }
  213. }
  214. }
  215. if (parm.MinD != "" || parm.MaxD != "")
  216. {
  217. if (parm.MinD == "")
  218. {
  219. MessageUtil.ShowWarning("请输入适用规格-外径下限!");
  220. row.SetCellActive("MIN_D");
  221. return;
  222. }
  223. else if (parm.MinD.TryParseDouble() == false)
  224. {
  225. MessageUtil.ShowWarning("适用规格-外径下限:请输入数字!");
  226. row.SetCellActive("MIN_D");
  227. return;
  228. }
  229. if (parm.MinD == "")
  230. {
  231. MessageUtil.ShowWarning("请输入适用规格-外径上限!");
  232. row.SetCellActive("MAX_D");
  233. return;
  234. }
  235. else if (parm.MaxD.TryParseDouble() == false)
  236. {
  237. MessageUtil.ShowWarning("适用规格-外径上限:请输入数字!");
  238. row.SetCellActive("MAX_D");
  239. return;
  240. }
  241. }
  242. if (parm.MinH != "" || parm.MaxH != "")
  243. {
  244. if (parm.MinH == "")
  245. {
  246. MessageUtil.ShowWarning("请输入适用规格-壁厚下限!");
  247. row.SetCellActive("MIN_H");
  248. return;
  249. }
  250. else if (parm.MinH.TryParseDouble() == false)
  251. {
  252. MessageUtil.ShowWarning("适用规格-壁厚下限:请输入数字!");
  253. row.SetCellActive("MIN_H");
  254. return;
  255. }
  256. if (parm.MaxH == "")
  257. {
  258. MessageUtil.ShowWarning("请输入适用规格-壁厚上限!");
  259. row.SetCellActive("MAX_H");
  260. return;
  261. }
  262. else if (parm.MaxH.TryParseDouble() == false)
  263. {
  264. MessageUtil.ShowWarning("适用规格-壁厚上限:请输入数字!");
  265. row.SetCellActive("MAX_H");
  266. return;
  267. }
  268. }
  269. parm.CreateName = CoreUserInfo.UserInfo.GetUserName();
  270. parm.UpdateName = CoreUserInfo.UserInfo.GetUserName();
  271. parm.DeleteName = CoreUserInfo.UserInfo.GetUserName();
  272. parm.SpeclFl = "2";
  273. parm.DesginKey = designKey;
  274. parms.Add(parm);
  275. }
  276. if (MessageUtil.ShowYesNoAndQuestion("是否确认保存?") == DialogResult.No)
  277. {
  278. return;
  279. }
  280. _designStdDicBLL.Save(parms);
  281. MessageUtil.ShowTips("保存成功!");
  282. QueryByDesignKeyDic(_parms);
  283. }
  284. public void Delete()
  285. {
  286. List<CraftOrdDesignStdDicEntity> parms = new List<CraftOrdDesignStdDicEntity>();
  287. var rows = entityGrid1.Rows.Where(a => a.GetValue("Chk") == "True");
  288. foreach (var row in rows)
  289. {
  290. var parm = EntityHelper.CopyEntity<CraftOrdDesignStdDicEntity>(row.ListObject);
  291. parm.CreateName = CoreUserInfo.UserInfo.GetUserName();
  292. parm.UpdateName = CoreUserInfo.UserInfo.GetUserName();
  293. parm.DeleteName = CoreUserInfo.UserInfo.GetUserName();
  294. parm.SpeclFl = "2";
  295. parm.DesginKey = designKey;
  296. parms.Add(parm);
  297. }
  298. if (MessageUtil.ShowYesNoAndQuestion("是否确认删除?") == DialogResult.No)
  299. {
  300. return;
  301. }
  302. _designStdDicBLL.Delete(parms);
  303. MessageUtil.ShowTips("删除成功!");
  304. }
  305. private void GridEdite(UltraGridRow row)
  306. {
  307. if (row.GetValue("Chk") == "True")
  308. {
  309. foreach (UltraGridCell cell in row.Cells)
  310. {
  311. if (cell.Column.CellActivation == Activation.AllowEdit)
  312. {
  313. cell.Activation = Activation.AllowEdit;
  314. }
  315. }
  316. }
  317. else
  318. {
  319. foreach (UltraGridCell cell in row.Cells)
  320. {
  321. if (cell.Column.Key == "Chk") continue;
  322. if (cell.Column.CellActivation == Activation.AllowEdit)
  323. {
  324. cell.Activation = Activation.ActivateOnly;
  325. }
  326. }
  327. }
  328. }
  329. private void entityGrid1_CellChange(object sender, CellEventArgs e)
  330. {
  331. entityGrid1.UpdateData();
  332. GridEdite(e.Cell.Row);
  333. }
  334. private void entityGrid1_AfterRowInsert(object sender, RowEventArgs e)
  335. {
  336. e.Row.Cells["CraftSource"].Value = "1";
  337. e.Row.Cells["SpeclFl"].Value = "2";
  338. }
  339. private void ultraTextEditor1_EditorButtonClick(object sender, EditorButtonEventArgs e)
  340. {
  341. UltraGridRow row = entityGrid1.ActiveRow;
  342. string key = entityGrid1.ActiveCell.Column.Key;
  343. if (key == "MscPline")
  344. {
  345. DataTable dt = _designMscPlBLL.QueryMscPlineProcess(designKey);
  346. dt.Columns["MSC_PLINE"].Caption = "制程号";
  347. dt.Columns["WHOLE_BACKLOG"].Caption = "全程途径码";
  348. dt.Columns["WHOLE_BACKLOG_DESC"].Caption = "全程途径描述";
  349. dt.Columns["PROCESS_DESC"].Caption = "工序";
  350. dt.Columns["PROCESS_DESC_C"].Caption = "二级工序";
  351. dt.Columns["DIC"].Caption = "探伤内控索引码";
  352. DataTable dtNew = dt.Clone();
  353. foreach (DataRow dr in dt.Rows)
  354. {
  355. string[] dics = dr["DIC"].ToString().Split(',');
  356. foreach (string dic in dics)
  357. {
  358. DataRow drNew = dtNew.NewRow();
  359. drNew["MSC_PLINE"] = dr["MSC_PLINE"];
  360. drNew["WHOLE_BACKLOG"] = dr["WHOLE_BACKLOG"];
  361. drNew["WHOLE_BACKLOG_DESC"] = dr["WHOLE_BACKLOG_DESC"];
  362. drNew["PROCESS_DESC"] = dr["PROCESS_DESC"];
  363. drNew["PROCESS_DESC_C"] = dr["PROCESS_DESC_C"];
  364. drNew["PROCESS_CODE"] = dr["PROCESS_CODE"];
  365. drNew["PROCESS_CODE_C"] = dr["PROCESS_CODE_C"];
  366. drNew["DIC"] = dic.Trim();
  367. dtNew.Rows.Add(drNew);
  368. }
  369. }
  370. BaseInfoPopup popup = new BaseInfoPopup(dtNew, "MSC_PLINE", "CIC", "SIC", "PIC", "WIC", "GIC", "PROCESS_CODE", "PROCESS_CODE_C");
  371. GridHelper.RefreshAndAutoSize(popup.UltraGrid1);
  372. popup.LabelTextBox1.Caption = "制程号";
  373. if (popup.ShowDialog() == DialogResult.OK)
  374. {
  375. row.SetValue("MscPline", popup.ChoicedRow.GetValue("MSC_PLINE"));
  376. row.SetValue("ProcessDescC", popup.ChoicedRow.GetValue("PROCESS_DESC_C"));
  377. row.SetValue("ProcessCodeC", popup.ChoicedRow.GetValue("PROCESS_CODE_C"));
  378. row.SetValue("ProcessDesc", popup.ChoicedRow.GetValue("PROCESS_DESC"));
  379. row.SetValue("ProcessCode", popup.ChoicedRow.GetValue("PROCESS_CODE"));
  380. row.SetValue("Dic", popup.ChoicedRow.GetValue("DIC"));
  381. }
  382. }
  383. else if (key == "ProcessDescC")
  384. {
  385. string mscPline = entityGrid1.ActiveRow.GetValue("MscPline");
  386. DataTable dt = _designMscPlPrcBLL.queryProcess(designKey, mscPline);
  387. dt.Columns["PROCESS_DESC"].Caption = "工序";
  388. dt.Columns["PROCESS_DESC_C"].Caption = "二级工序";
  389. BaseInfoPopup popup = new BaseInfoPopup(dt, "PROCESS_DESC_C", "PROCESS_CODE", "PROCESS_CODE_C");
  390. popup.LabelTextBox1.Caption = "二级工序";
  391. if (popup.ShowDialog() == DialogResult.OK)
  392. {
  393. row.SetValue("ProcessDescC", popup.ChoicedRow.GetValue("PROCESS_DESC_C"));
  394. row.SetValue("ProcessCodeC", popup.ChoicedRow.GetValue("PROCESS_CODE_C"));
  395. row.SetValue("ProcessDesc", popup.ChoicedRow.GetValue("PROCESS_DESC"));
  396. row.SetValue("ProcessCode", popup.ChoicedRow.GetValue("PROCESS_CODE"));
  397. }
  398. }
  399. else if (key == "Dic")
  400. {
  401. string mscPline = entityGrid1.ActiveRow.GetValue("MscPline");
  402. string processCode = entityGrid1.ActiveRow.GetValue("ProcessCode");
  403. DataTable dt = _designMscPlPrcBLL.queryProcessNkIndex(designKey, mscPline, processCode);
  404. dt.Columns["DIC"].Caption = "探伤内控索引码";
  405. BaseInfoPopup popup = new BaseInfoPopup(dt, "DIC", "PIC", "SIC", "CIC", "WIC", "GIC");
  406. popup.LabelTextBox1.Caption = "探伤内控索引码";
  407. if (popup.ShowDialog() == DialogResult.OK)
  408. {
  409. row.SetValue("Dic", popup.ChoicedRow.GetValue("DIC"));
  410. }
  411. }
  412. }
  413. }
  414. }