FrmBaseMaterialFPl.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Windows.Forms;
  10. using com.steering.pss.plnsaleord.processOrder.entity;
  11. using Core.Mes.Client.Comm.Server;
  12. using Core.Mes.Client.Comm.Tool;
  13. using Core.StlMes.Client.PlnSaleOrd.BaseMethod;
  14. using Core.StlMes.Client.PlnSaleOrd.Entity;
  15. using CoreFS.CA06;
  16. using Infragistics.Win.UltraWinEditors;
  17. using Infragistics.Win.UltraWinGrid;
  18. using Core.Mes.Client.Comm.Format;
  19. namespace Core.StlMes.Client.PlnSaleOrd
  20. {
  21. public partial class FrmBaseMaterialFPl : FrmBase
  22. {
  23. private string _inMaterialNo = "";
  24. private string _outMaterialNo = "";
  25. private string _inMaterialDesc = "";
  26. private string _outMaterialDesc = "";
  27. private string _groupPlan = "";
  28. private string _plineCode = "";
  29. public FrmBaseMaterialFPl(string inMaterialNo, string outMaterialNo, OpeBase ob)
  30. {
  31. this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
  32. InitializeComponent();
  33. _inMaterialNo = inMaterialNo;
  34. _outMaterialNo = outMaterialNo;
  35. this.ob = ob;
  36. }
  37. public FrmBaseMaterialFPl(string inMaterialNo, string outMaterialNo,string groupPlan,string plineCode, OpeBase ob)
  38. {
  39. this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
  40. InitializeComponent();
  41. _inMaterialNo = inMaterialNo;
  42. _outMaterialNo = outMaterialNo;
  43. _groupPlan = groupPlan;
  44. _plineCode = plineCode;
  45. this.ob = ob;
  46. }
  47. //public FrmBaseMaterialFPl()
  48. //{
  49. // InitializeComponent();
  50. //}
  51. private void FrmBaseMaterialFPl_Load(object sender, EventArgs e)
  52. {
  53. EntityHelper.ShowGridCaption<SlmBaseMaterialFPlEntity>(ultraGridRcl.DisplayLayout.Bands[0]);
  54. BaseHelper.setColumnBackColor(ultraGridRcl, new string[] { "HrCapcty", "PrdRate", "DisableFl", "WasteRate", "PlineCode", "PlineLevel" });
  55. BaseHelper.InitCellPosition(ultraGridRcl, new string[] { "HrCapcty", "PrdRate", "WasteRate", "PlineLevel" });
  56. InitMaterialDesc();
  57. InitPline();
  58. //如果在基础热处理找不到,则不执行
  59. if (_inMaterialDesc.Equals(""))
  60. {
  61. ultraGridRcl.Enabled = false;
  62. return;
  63. }
  64. DoQuery();
  65. }
  66. /// <summary>
  67. /// 初始化产线
  68. /// </summary>
  69. private void InitPline()
  70. {
  71. UltraComboEditor uce = new UltraComboEditor();
  72. DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.FrmBaseMaterialFPl.getBasePlineF", new object[] {_groupPlan }, this.ob);
  73. uce.DataSource = dt;
  74. uce.DisplayMember = "PLINE_NAME";
  75. uce.ValueMember = "PLINE_CODE";
  76. Controls.Add(uce);
  77. uce.Visible = false;
  78. uce.DropDownListWidth = -1;
  79. UltraGridBand ugb = ultraGridRcl.DisplayLayout.Bands[0];
  80. ugb.Columns["PlineCode"].EditorComponent = uce;
  81. ugb.Columns["PlineCode"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  82. }
  83. /// <summary>
  84. /// 初始化物料描述
  85. /// </summary>
  86. /// <param name="inMaterialNo"></param>
  87. /// <param name="outMaterialNo"></param>
  88. private void InitMaterialDesc()
  89. {
  90. DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.FrmBaseMaterialFPl.getBaseMaterialDescF", new object[] { _inMaterialNo, _outMaterialNo }, this.ob);
  91. if (dt != null && dt.Rows.Count > 0)
  92. {
  93. _inMaterialDesc = dt.Rows[0]["IN_MATERIAL_DESC"].ToString();
  94. _outMaterialDesc = dt.Rows[0]["OUT_MATERIAL_DESC"].ToString();
  95. }
  96. }
  97. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  98. {
  99. switch (e.Tool.Key.Trim())
  100. {
  101. case "查询":
  102. DoQuery();
  103. break;
  104. case "新增":
  105. DoSave("0");
  106. break;
  107. case "修改":
  108. DoSave("1");
  109. break;
  110. case "删除":
  111. DoSave("2");
  112. break;
  113. case "关闭":
  114. this.Close();
  115. break;
  116. }
  117. }
  118. public void DoQuery()
  119. {
  120. List<SlmBaseMaterialFPlEntity> materialFPlEntityList = EntityHelper.GetData<SlmBaseMaterialFPlEntity>(
  121. "com.steering.pss.plnsaleord.processOrder.FrmBaseMaterialFPl.queryRclPl", new object[] { _inMaterialNo, _outMaterialNo,_groupPlan }, ob);
  122. slmBaseMaterialFPlEntityBindingSource.DataSource = materialFPlEntityList;
  123. if (!_plineCode.Equals(""))
  124. {
  125. IQueryable<UltraGridRow> chcRows = ultraGridRcl.Rows.AsQueryable().Where(a => a.GetValue("PlineCode") == _plineCode);
  126. if (chcRows != null && chcRows.Count() != 0)
  127. {
  128. chcRows.First().Activate();
  129. chcRows.First().Cells["CHC"].Value = true;
  130. }
  131. }
  132. }
  133. private void DoSave(string flag)
  134. {
  135. ultraGridRcl.UpdateData();
  136. IQueryable<UltraGridRow> chcRows = ultraGridRcl.Rows.AsQueryable().Where("CHC = 'True'");
  137. if (chcRows.Count() == 0)
  138. {
  139. MessageUtil.ShowTips("请选择记录!");
  140. return;
  141. }
  142. ArrayList plineList = new ArrayList();
  143. ArrayList list = new ArrayList();
  144. foreach (UltraGridRow ugr in chcRows)
  145. {
  146. SlmBaseMaterialFPlEntity fPlEntity = (SlmBaseMaterialFPlEntity)ugr.ListObject;
  147. if (fPlEntity.PlineCode.Equals(""))
  148. {
  149. MessageUtil.ShowWarning("请选择热处理产线!");
  150. return;
  151. }
  152. if (plineList.Contains(fPlEntity.PlineCode))
  153. {
  154. MessageUtil.ShowWarning("存在相同的产线(" + fPlEntity .PlineName+ ")!");
  155. return;
  156. }
  157. else
  158. {
  159. plineList.Add(fPlEntity.PlineCode);
  160. }
  161. if (flag.Equals("0") && CheckIsExist(fPlEntity.PlineCode, fPlEntity.InMaterialNo, fPlEntity.OutMaterialNo))
  162. {
  163. MessageUtil.ShowWarning("已经存在的记录(产线:" + fPlEntity.PlineName + ",投入物料:" + fPlEntity.InMaterialDesc + ",产出物料:" + fPlEntity.OutMaterialDesc+"),不能新增!");
  164. return;
  165. }
  166. if (flag.Equals("1") && (!CheckIsExist(fPlEntity.PlineCode, fPlEntity.InMaterialNo, fPlEntity.OutMaterialNo) || fPlEntity.CreateTime.Equals("")))
  167. {
  168. MessageUtil.ShowWarning("不存在的记录(产线:" + fPlEntity.PlineName + ",投入物料:" + fPlEntity.InMaterialDesc + ",产出物料:" + fPlEntity.OutMaterialDesc + "),不能修改!");
  169. return;
  170. }
  171. if (flag.Equals("2") &&( !CheckIsExist(fPlEntity.PlineCode, fPlEntity.InMaterialNo, fPlEntity.OutMaterialNo)||fPlEntity.CreateTime.Equals("")))
  172. {
  173. MessageUtil.ShowWarning("不存在的记录(产线:" + fPlEntity.PlineName + ",投入物料:" + fPlEntity.InMaterialDesc + ",产出物料:" + fPlEntity.OutMaterialDesc + "),不能删除!");
  174. return;
  175. }
  176. if (fPlEntity.DisableFl.Equals("True"))
  177. {
  178. fPlEntity.DisableFl = "1";
  179. }
  180. else
  181. {
  182. fPlEntity.DisableFl = "0";
  183. }
  184. fPlEntity.CreateName = UserInfo.GetUserName();
  185. fPlEntity.UpdateName = UserInfo.GetUserName();
  186. list.Add(JSONFormat.Format(fPlEntity));
  187. }
  188. string message="";
  189. if(flag.Equals("0")){
  190. message="是否新增记录?";
  191. }else if(flag.Equals("1")){
  192. message="是否修改记录?";
  193. }else{
  194. message="此操作不可恢复,是否删除记录?";
  195. }
  196. if (MessageUtil.ShowYesNoAndQuestion(message) == DialogResult.No)
  197. {
  198. return;
  199. }
  200. ServerHelper.SetData("com.steering.pss.plnsaleord.processOrder.FrmBaseMaterialFPl.saveRclPl", new object[] { list, flag }, ob);
  201. DoQuery();
  202. MessageUtil.ShowTips("操作成功!");
  203. }
  204. private bool CheckIsExist(string plineCode,string inMaterialNo,string outMaterialNo)
  205. {
  206. DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.FrmBaseMaterialFPl.checkIsExist", new object[] { plineCode, inMaterialNo, outMaterialNo }, this.ob);
  207. if (dt != null && dt.Rows.Count > 0)
  208. {
  209. return true;
  210. }
  211. else
  212. {
  213. return false;
  214. }
  215. }
  216. private void ultraGridRcl_AfterRowInsert(object sender, RowEventArgs e)
  217. {
  218. UltraGridRow ugr = e.Row;
  219. ugr.Cells["InMaterialDesc"].Value = _inMaterialDesc;
  220. ugr.Cells["InMaterialNo"].Value = _inMaterialNo;
  221. ugr.Cells["outMaterialDesc"].Value = _outMaterialDesc;
  222. ugr.Cells["outMaterialNo"].Value = _outMaterialNo;
  223. ugr.Cells["DisableFl"].Value = false;
  224. }
  225. private void ultraGridRcl_CellChange(object sender, CellEventArgs e)
  226. {
  227. ultraGridRcl.UpdateData();
  228. if (e.Cell.Column.Key.Equals("PlineCode"))
  229. {
  230. e.Cell.Row.Cells["PlineName"].Value = e.Cell.Text;
  231. }
  232. }
  233. private void ultraGridRcl_InitializeRow(object sender, InitializeRowEventArgs e)
  234. {
  235. ControlCellEdit(e.Row);
  236. }
  237. private void ControlCellEdit(UltraGridRow row)
  238. {
  239. foreach (UltraGridCell cell in row.Cells)
  240. {
  241. if (cell.Column.CellAppearance.BackColor == Color.FromArgb(255, 255, 128))
  242. {
  243. if (row.Cells["CHC"].Value.ToString() == "True")
  244. {
  245. cell.Activation = Activation.AllowEdit;
  246. }
  247. else
  248. {
  249. cell.Activation = Activation.ActivateOnly;
  250. }
  251. if (!row.Cells["CreateTime"].Value.ToString().Equals(""))
  252. {
  253. if (cell.Column.Key.Equals("PlineCode"))
  254. {
  255. cell.Activation = Activation.ActivateOnly;
  256. }
  257. }
  258. }
  259. else
  260. {
  261. if (!cell.Column.Key.Equals("CHC"))
  262. {
  263. cell.Activation = Activation.ActivateOnly;
  264. }
  265. }
  266. }
  267. }
  268. }
  269. }