FrmLgAmount.cs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380
  1. using Core.Mes.Client.Comm;
  2. using Core.Mes.Client.Comm.Control;
  3. using Core.Mes.Client.Comm.Server;
  4. using Core.Mes.Client.Comm.Tool;
  5. using Core.StlMes.Client.PlnSaleOrd.BaseMethod;
  6. using Core.StlMes.Client.PlnSaleOrd.工序排产;
  7. using Core.StlMes.Client.PlnSaleOrd.炼钢计划.entity;
  8. using CoreFS.CA06;
  9. using Infragistics.Win;
  10. using Infragistics.Win.UltraWinEditors;
  11. using Infragistics.Win.UltraWinGrid;
  12. using System;
  13. using System.Collections;
  14. using System.Collections.Generic;
  15. using System.ComponentModel;
  16. using System.Data;
  17. using System.Drawing;
  18. using System.Linq;
  19. using System.Text;
  20. using System.Windows.Forms;
  21. namespace Core.StlMes.Client.PlnSaleOrd.炼钢计划
  22. {
  23. public partial class FrmLgAmount : FrmBase
  24. {
  25. private string[] plineCode = null;//获取产线代码
  26. public FrmLgAmount()
  27. {
  28. InitializeComponent();
  29. }
  30. private void FrmLgAmount_Load(object sender, EventArgs e)
  31. {
  32. //设置列头名称
  33. EntityHelper.ShowGridCaption<PlnOrderCastSEntityAmoun>(ultraGridCast.DisplayLayout.Bands[0]);
  34. EntityHelper.ShowGridCaption<PlnOrderCastSEntityAmoun>(ultraGrid1.DisplayLayout.Bands[0]);
  35. EntityHelper.ShowGridCaption<PlnOrderCastSEntityAmoun>(ultraGrid2.DisplayLayout.Bands[0]);
  36. BaseHelper.setOtherColumnReadOnly(ultraGridCast, new string[] { "CHC", "AmountNum" });
  37. BaseHelper.setOtherColumnReadOnly(ultraGrid1, new string[] { "CHC" });
  38. BaseHelper.setOtherColumnReadOnly(ultraGrid2, new string[] { "CHC" });
  39. BaseHelper.setColumnBackColor(ultraGridCast, new string[] { "AmountNum" });
  40. BaseHelper.InitCellPosition(ultraGridCast, new string[] { "GxPlanNo", "OrderSeq", "DeliveryNo", "PlanWtS", "PlanNumS", "PlanUsetime", "GxProSeq", "PlnDivideId", "DiameterLz", "LenGpSingle", "CutNumGp", "CutLoseLen", "LengthLz", "WtCastOne", "CastNumCalc", "FurnaceNumCalc", "FurnaceWt", "PlanedWt", "PlanedNum", "Finishweight", "FinishNum", "CastNum", "FurnaceNum", "AddWtBegin", "AddWtEnd", "AddWtAhead", "AddWtNext", "CanWgt", "CanNum", "GradeSort", "ProcessingCostA", "TotalCostA", "ProcessingCostB", "TotalCostB", "ManualNum", "PlanWtSold", "PlanNumSold", "AmountNum", "AmountWet" });
  41. BaseHelper.setUltraGridColumnMaxInput(ultraGridCast, new string[] { "PlanWtS", "CanWgt", "PlanedWt", "PlanWtSold", "AmountWet" });
  42. plineCode = PlanHelper.InitDropPlinePower("B", comPline, this.ValidDataPurviewIds, this.ob);
  43. InitColorStyle();
  44. }
  45. private void InitColorStyle()
  46. {
  47. ultraGridCast.DisplayLayout.Bands[0].Columns["PlanTimeB"].Format = "yyyy-MM-dd HH:mm:ss";
  48. ultraGridCast.DisplayLayout.Bands[0].Columns["PlanTimeB"].MaskInput = "yyyy-mm-dd hh:mm:ss";
  49. ultraGridCast.DisplayLayout.Bands[0].Columns["PlanTimeB"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DateTime;
  50. }
  51. public override void ToolBar_Click(object sender, string ToolbarKey)
  52. {
  53. switch (ToolbarKey)
  54. {
  55. case "Query"://查询
  56. if (ultraTabControl1.SelectedTab.Key.Equals("0"))
  57. {
  58. Query();
  59. }
  60. else
  61. {
  62. QueryBl();
  63. }
  64. break;
  65. case "Delete"://删除
  66. DoDelete();
  67. break;
  68. case "Add"://补量
  69. DoAdd();
  70. break;
  71. case "Close": //关闭
  72. this.Close();
  73. break;
  74. default:
  75. break;
  76. }
  77. }
  78. /// <summary>
  79. /// 查询
  80. /// </summary>
  81. private void Query()
  82. {
  83. //产线
  84. string comPlineCode = "";
  85. if (chcPline.Checked)
  86. {
  87. if (comPline.Text.Equals(""))
  88. {
  89. MessageUtil.ShowTips("请选择产线!");
  90. return;
  91. }
  92. else
  93. {
  94. comPlineCode = comPline.Value.ToString();
  95. }
  96. }
  97. WaitingForm2 wf3 = new WaitingForm2("正在刷新,请稍候....");
  98. try
  99. {
  100. this.Cursor = Cursors.WaitCursor;
  101. //执行状态
  102. string[] statusArr = contorlPlanStatusBL1.statusArr;
  103. string proPlanId = "";
  104. if (chcProPlanId.Checked) { proPlanId = txtProPlanId.Text.Trim(); }
  105. List<PlnOrderCastSEntityAmoun> listSource = EntityHelper.GetData<PlnOrderCastSEntityAmoun>
  106. ("com.steering.pss.plnsaleord.steelMarkingPlan.FrmLgAmount.query", new object[] { plineCode, proPlanId, statusArr, comPlineCode }, this.ob);
  107. plnOrderCastSEntityAmounBindingSource.DataSource = listSource;
  108. }
  109. finally
  110. {
  111. wf3.Close();
  112. this.Cursor = Cursors.Default;
  113. }
  114. }
  115. /// <summary>
  116. ///补量信息
  117. /// </summary>
  118. private void QueryBl()
  119. {
  120. //产线
  121. string comPlineCode = "";
  122. if (chcPline.Checked)
  123. {
  124. if (comPline.Text.Equals(""))
  125. {
  126. MessageUtil.ShowTips("请选择产线!");
  127. return;
  128. }
  129. else
  130. {
  131. comPlineCode = comPline.Value.ToString();
  132. }
  133. }
  134. WaitingForm2 wf3 = new WaitingForm2("正在刷新,请稍候....");
  135. try
  136. {
  137. this.Cursor = Cursors.WaitCursor;
  138. //执行状态
  139. string[] statusArr = contorlPlanStatusBL1.statusArr;
  140. string proPlanId = "";
  141. if (chcProPlanId.Checked) { proPlanId = txtProPlanId.Text.Trim(); }
  142. List<PlnOrderCastSEntityAmoun> listSource = EntityHelper.GetData<PlnOrderCastSEntityAmoun>
  143. ("com.steering.pss.plnsaleord.steelMarkingPlan.FrmLgAmount.queryBl", new object[] { plineCode, proPlanId, statusArr, comPlineCode }, this.ob);
  144. bindingSource2.DataSource = listSource;
  145. }
  146. finally
  147. {
  148. wf3.Close();
  149. this.Cursor = Cursors.Default;
  150. }
  151. }
  152. /// <summary>
  153. /// 删除
  154. /// </summary>
  155. private void DoDelete()
  156. {
  157. ultraGrid1.UpdateData();
  158. ArrayList list = new ArrayList();
  159. IQueryable<UltraGridRow> checkRows = this.ultraGrid1.Rows.AsQueryable().Where(" CHC = 'True' ");
  160. if (checkRows.Count() == 0)
  161. {
  162. MessageUtil.ShowTips("未选择补量订单!");
  163. return;
  164. }
  165. foreach (UltraGridRow uRow in checkRows)
  166. {
  167. ArrayList param = new ArrayList();
  168. param.Add(uRow.Cells["ProPlanId"].Value.ToString());
  169. param.Add(uRow.Cells["GxPlanNo"].Value.ToString());
  170. list.Add(param);
  171. }
  172. PlanComm.WaitFromOpen(this.Cursor);
  173. CoreClientParam ccp = new CoreClientParam();
  174. ccp.ServerName = "com.steering.pss.plnsaleord.steelMarkingPlan.FrmLgAmount";
  175. ccp.MethodName = "deleteAmount";
  176. ccp.ServerParams = new object[] { list };
  177. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  178. PlanComm.WaitFromColse(this.Cursor);
  179. if (ccp.ReturnCode == -1) return;
  180. MessageUtil.ShowTips(ccp.ReturnInfo);
  181. if (ccp.ReturnInfo.Equals("删除成功!"))
  182. {
  183. UltraGridRow ugrAc = ultraGridCast.ActiveRow;
  184. if (ugrAc == null)
  185. {
  186. return;
  187. }
  188. List<PlnOrderCastSEntityAmoun> listSource = EntityHelper.GetData<PlnOrderCastSEntityAmoun>
  189. ("com.steering.pss.plnsaleord.steelMarkingPlan.FrmLgAmount.queryPlnBl", new object[] { ugrAc.Cells["ProPlanId"].Text.Trim().ToString() }, this.ob);
  190. bindingSource1.DataSource = listSource;
  191. }
  192. }
  193. /// <summary>
  194. /// 补量
  195. /// </summary>
  196. private void DoAdd()
  197. {
  198. try
  199. {
  200. ultraGridCast.UpdateData();
  201. ArrayList list = new ArrayList();
  202. IQueryable<UltraGridRow> checkRows = this.ultraGridCast.Rows.AsQueryable().Where(" CHC = 'True' ");
  203. if (checkRows.Count() == 0)
  204. {
  205. MessageUtil.ShowTips("未选择铸造订单!");
  206. return;
  207. }
  208. foreach (UltraGridRow uRow in checkRows)
  209. {
  210. if (uRow.Cells["AmountNum"].Text.ToString().Equals(""))
  211. {
  212. MessageUtil.ShowTips("订单号为:" + uRow.Cells["ProPlanId"].Value.ToString() + "/" + uRow.Cells["GxPlanNo"].Value.ToString() + ",请输入补量支数!");
  213. return;
  214. }
  215. if (uRow.Cells["AmountWet"].Text.ToString().Equals(""))
  216. {
  217. MessageUtil.ShowTips("订单号为:" + uRow.Cells["ProPlanId"].Value.ToString() + "/" + uRow.Cells["GxPlanNo"].Value.ToString() + ",请输入补量重量!");
  218. return;
  219. }
  220. if (!uRow.Cells["ExeStatusZg"].Text.ToString().Equals("计划"))
  221. {
  222. MessageUtil.ShowTips("订单号为:" + uRow.Cells["ProPlanId"].Value.ToString() + ",对应轧管订单没有计划状态,不能补量!");
  223. return;
  224. }
  225. ArrayList param = new ArrayList();
  226. param.Add(uRow.Cells["AmountNum"].Value.ToString());
  227. param.Add(uRow.Cells["AmountWet"].Value.ToString());
  228. param.Add(uRow.Cells["ProPlanId"].Value.ToString());
  229. param.Add(uRow.Cells["GxPlanNo"].Value.ToString());
  230. list.Add(param);
  231. }
  232. PlanComm.WaitFromOpen(this.Cursor);
  233. CoreClientParam ccp = new CoreClientParam();
  234. ccp.ServerName = "com.steering.pss.plnsaleord.steelMarkingPlan.FrmLgAmount";
  235. ccp.MethodName = "addAmount";
  236. ccp.ServerParams = new object[] { list,this.UserInfo.GetUserName() };
  237. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  238. PlanComm.WaitFromColse(this.Cursor);
  239. if (ccp.ReturnCode == -1) return;
  240. MessageUtil.ShowTips(ccp.ReturnInfo);
  241. if (ccp.ReturnInfo.Equals("补量成功!"))
  242. {
  243. Query();
  244. }
  245. }
  246. catch (Exception ex)
  247. {
  248. PlanComm.WaitFromColse(this.Cursor);
  249. if (!(ex is MESException))
  250. {
  251. MessageUtil.ShowError(ex.Message);
  252. }
  253. }
  254. }
  255. /// <summary>
  256. /// ultraGridCast 改变事件
  257. /// </summary>
  258. /// <param name="sender"></param>
  259. /// <param name="e"></param>
  260. private void ultraGridCast_AfterRowActivate(object sender, EventArgs e)
  261. {
  262. UltraGridRow ugrAc = ultraGridCast.ActiveRow;
  263. if (ugrAc == null)
  264. {
  265. return;
  266. }
  267. List<PlnOrderCastSEntityAmoun> listSource = EntityHelper.GetData<PlnOrderCastSEntityAmoun>
  268. ("com.steering.pss.plnsaleord.steelMarkingPlan.FrmLgAmount.queryPlnBl", new object[] { ugrAc.Cells["ProPlanId"].Text.Trim().ToString() }, this.ob);
  269. bindingSource1.DataSource = listSource;
  270. }
  271. private void FrmLgAmount_Shown(object sender, EventArgs e)
  272. {
  273. if (toolMenu.Toolbars[0].Tools.Exists("Query")) { toolMenu.Toolbars[0].Tools["Query"].InstanceProps.Visible = DefaultableBoolean.True; }
  274. if (toolMenu.Toolbars[0].Tools.Exists("Delete")) { toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.True; }
  275. if (toolMenu.Toolbars[0].Tools.Exists("Add")) { toolMenu.Toolbars[0].Tools["Add"].InstanceProps.Visible = DefaultableBoolean.True; }
  276. if (toolMenu.Toolbars[0].Tools.Exists("Close")) { toolMenu.Toolbars[0].Tools["Close"].InstanceProps.Visible = DefaultableBoolean.True; }
  277. }
  278. /// <summary>
  279. /// tab 改变事件
  280. /// </summary>
  281. /// <param name="sender"></param>
  282. /// <param name="e"></param>
  283. private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
  284. {
  285. if (toolMenu == null) return;
  286. if (e.Tab.TabControl.SelectedTab.Key.Equals("0"))
  287. {
  288. if (toolMenu.Toolbars[0].Tools.Exists("Query")) { toolMenu.Toolbars[0].Tools["Query"].InstanceProps.Visible = DefaultableBoolean.True; }
  289. if (toolMenu.Toolbars[0].Tools.Exists("Delete")) { toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.True; }
  290. if (toolMenu.Toolbars[0].Tools.Exists("Add")) { toolMenu.Toolbars[0].Tools["Add"].InstanceProps.Visible = DefaultableBoolean.True; }
  291. if (toolMenu.Toolbars[0].Tools.Exists("Close")) { toolMenu.Toolbars[0].Tools["Close"].InstanceProps.Visible = DefaultableBoolean.True; }
  292. }
  293. else
  294. {
  295. if (toolMenu.Toolbars[0].Tools.Exists("Query")) { toolMenu.Toolbars[0].Tools["Query"].InstanceProps.Visible = DefaultableBoolean.True; }
  296. if (toolMenu.Toolbars[0].Tools.Exists("Delete")) { toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.False; }
  297. if (toolMenu.Toolbars[0].Tools.Exists("Add")) { toolMenu.Toolbars[0].Tools["Add"].InstanceProps.Visible = DefaultableBoolean.False; }
  298. if (toolMenu.Toolbars[0].Tools.Exists("Close")) { toolMenu.Toolbars[0].Tools["Close"].InstanceProps.Visible = DefaultableBoolean.True; }
  299. }
  300. }
  301. private void ultraGridCast_CellChange(object sender, CellEventArgs e)
  302. {
  303. UltraGridRow ugrAc = ultraGridCast.ActiveRow;
  304. if (ugrAc == null)
  305. {
  306. return;
  307. }
  308. ultraGridCast.UpdateData();
  309. if (e.Cell.Column.Key.Equals("AmountNum"))
  310. {
  311. if (e.Cell.Row.Cells["WtCastOne"].Text.Equals("") || e.Cell.Row.Cells["WtCastOne"].Text.Equals("0.000"))
  312. {
  313. MessageUtil.ShowTips("请输入铸造坯单重!");
  314. return;
  315. }
  316. if (e.Cell.Row.Cells["AmountNum"].Value == null)
  317. {
  318. e.Cell.Row.Cells["AmountNum"].Value = "0";
  319. e.Cell.Row.Cells["AmountWet"].Value = "0";
  320. }
  321. else
  322. {
  323. string actCount = e.Cell.Row.Cells["AmountNum"].Value.ToString();
  324. if (!StringUtil.IsInt(actCount) || actCount == "0")//actCount == "" || int.Parse(actCount)==0
  325. {
  326. e.Cell.Row.Cells["AmountNum"].Value = "0";
  327. e.Cell.Row.Cells["AmountWet"].Value = "0";
  328. }
  329. else
  330. {
  331. e.Cell.Row.Cells["AmountWet"].Value = (double.Parse(e.Cell.Row.Cells["WtCastOne"].Value.ToString()) * double.Parse(e.Cell.Row.Cells["AmountNum"].Value.ToString())).ToString("f3");
  332. }
  333. }
  334. }
  335. if (e.Cell.Column.Key.Equals("WtCastOne"))
  336. {
  337. if (e.Cell.Row.Cells["WtCastOne"].Value == null)
  338. {
  339. e.Cell.Row.Cells["AmountWet"].Value = "0";
  340. }
  341. else
  342. {
  343. string Bilwt = e.Cell.Row.Cells["WtCastOne"].Value.ToString();
  344. if (!StringUtil.IsDouble(Bilwt) || Bilwt == "0.00")//actCount == "" || int.Parse(actCount)==0
  345. {
  346. e.Cell.Row.Cells["AmountWet"].Value = "0";
  347. }
  348. else
  349. {
  350. if (!e.Cell.Row.Cells["AmountWet"].Text.Equals(""))
  351. {
  352. e.Cell.Row.Cells["AmountWet"].Value = (double.Parse(e.Cell.Row.Cells["WtCastOne"].Value.ToString()) * double.Parse(e.Cell.Row.Cells["AmountNum"].Value.ToString())).ToString("f3");
  353. }
  354. }
  355. }
  356. }
  357. }
  358. private void chcPline_CheckedChanged(object sender, EventArgs e)
  359. {
  360. if (chcPline.Checked) { comPline.Enabled = true; } else { comPline.Enabled = false; }
  361. if (chcProPlanId.Checked) { txtProPlanId.Enabled = true; } else { txtProPlanId.Enabled = false; }
  362. }
  363. }
  364. }