FrmSpitBill.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  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 Core.Mes.Client.Comm.Tool;
  10. using CoreFS.CA06;
  11. using Core.Mes.Client.Comm.Server;
  12. using Core.StlMes.Client.PlnSaleOrd.工序排产;
  13. using Core.StlMes.Client.PlnSaleOrd.窗体;
  14. namespace Core.StlMes.Client.PlnSaleOrd.JGGXPln
  15. {
  16. public partial class FrmSpitBill : FrmBase
  17. {
  18. /// <summary>
  19. /// 可分配重量
  20. /// </summary>
  21. private double waitSpitWgt;
  22. /// <summary>
  23. /// 可分配支数
  24. /// </summary>
  25. private int waitSpitNum;
  26. /// <summary>
  27. /// 已分配重量
  28. /// </summary>
  29. private double alreadySpitWgt = 0;
  30. /// <summary>
  31. /// 可分配剩余支数
  32. /// </summary>
  33. private int numF;
  34. public double AlreadySpitWgt
  35. {
  36. get { return alreadySpitWgt; }
  37. set { alreadySpitWgt = value; }
  38. }
  39. /// <summary>
  40. /// 已分配支数
  41. /// </summary>
  42. private int alreadySpitNum = 0;
  43. public int AlreadySpitNum
  44. {
  45. get { return alreadySpitNum; }
  46. set { alreadySpitNum = value; }
  47. }
  48. /// <summary>
  49. /// 重量与支数比例
  50. /// </summary>
  51. private double spitRatio;
  52. private OpeBase ob;
  53. private ProducEntity entity = null;
  54. private double waitReaWt;//上料吨
  55. private int waitReaNum;//上料支
  56. public FrmSpitBill(double waitSpitWgt, int waitSpitNum, double spitRatio, OpeBase _ob,double reaWt, int reaNum)
  57. {
  58. this.waitSpitWgt = waitSpitWgt;
  59. this.waitSpitNum = waitSpitNum;
  60. waitReaWt = reaWt;
  61. waitReaNum = reaNum;
  62. this.spitRatio = spitRatio;
  63. ob = _ob;
  64. //窗体居中
  65. this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
  66. //取消窗体默认关闭按钮
  67. this.ControlBox = false;
  68. InitializeComponent();
  69. }
  70. private void FrmSpitWgt_Load(object sender, EventArgs e)
  71. {
  72. numEditorAllow.Value = waitSpitWgt;
  73. ultraNumericEditor1.Value = waitSpitNum;
  74. numEditorAlready.Value = waitSpitWgt - waitReaWt;
  75. ultraNumericEditor2.Value = waitSpitNum - waitReaNum;
  76. if (numF != 0)
  77. {
  78. int spitNum = int.Parse(waitSpitNum.ToString()) - numF;
  79. if (spitNum > 0)
  80. {
  81. ultraNumericEditor2.Value = spitNum;
  82. double spitWgt = spitNum * spitRatio;
  83. numEditorAlready.Value = spitWgt;
  84. }
  85. }
  86. }
  87. private void buttonCommit_Click(object sender, EventArgs e)
  88. {
  89. string spitNum = ultraNumericEditor2.Value == null ? "0" : ultraNumericEditor2.Value.ToString();
  90. //string spitWgt = numEditorAlready.Value == null ? "0" : numEditorAlready.Value.ToString();
  91. if (int.Parse(spitNum) <= 0)
  92. {
  93. MessageUtil.ShowWarning("拆分支数不能为0支!");
  94. return;
  95. }
  96. if (Convert.ToInt32(spitNum) >= waitSpitNum)
  97. {
  98. MessageUtil.ShowWarning("拆分支数不能大于/等于可拆分支数!");
  99. return;
  100. }
  101. double spitWgt = Convert.ToInt32(spitNum) * spitRatio;
  102. alreadySpitWgt = Convert.ToDouble(spitWgt);
  103. //通过重量与支数的比例计划 分配支数
  104. alreadySpitNum = Convert.ToInt32(spitNum);
  105. if (int.Parse(spitNum) > waitSpitNum - waitReaNum)
  106. {
  107. MessageUtil.ShowWarning("拆分支数已大于可拆分支数-已上料支数!");
  108. return;
  109. }
  110. this.Close();
  111. }
  112. private void buttonCancel_Click(object sender, EventArgs e)
  113. {
  114. this.Close();
  115. }
  116. //输入支数
  117. private void ultraNumericEditor2_ValueChanged(object sender, EventArgs e)
  118. {
  119. if (ultraNumericEditor2 == null)
  120. {
  121. numEditorAlready.Value = 0;
  122. ultraNumericEditor2.Value = 0;
  123. return;
  124. }
  125. string spitNum = ultraNumericEditor2.Value.ToString();
  126. if (int.Parse(spitNum) > waitSpitNum)
  127. {
  128. numEditorAlready.Value = waitSpitWgt;
  129. ultraNumericEditor2.Value = waitSpitNum;
  130. return;
  131. }
  132. double spitWgt = int.Parse(spitNum) * spitRatio;
  133. numEditorAlready.Value = spitWgt;
  134. }
  135. }
  136. }